diff --git a/.gitea/workflows/publish-workspace-server-image.yml b/.gitea/workflows/publish-workspace-server-image.yml index e9ca5ec2..08a65d14 100644 --- a/.gitea/workflows/publish-workspace-server-image.yml +++ b/.gitea/workflows/publish-workspace-server-image.yml @@ -32,11 +32,9 @@ on: - '.gitea/workflows/publish-workspace-server-image.yml' workflow_dispatch: -# Serialize per-branch so two rapid staging pushes don't race the same -# :staging-latest tag retag. Allow staging and main to run in parallel -# (different GITHUB_REF → different concurrency group) since they -# produce different :staging- tags and last-write-wins on -# :staging-latest is acceptable across branches. +# Serialize per-branch so two rapid main pushes don't race the same +# :staging-latest tag retag. Allow parallel runs as they produce +# different :staging- tags and last-write-wins on :staging-latest. # # cancel-in-progress: false → in-flight builds finish; the next push's # build queues. This avoids a partially-pushed image. diff --git a/.staging-trigger b/.staging-trigger new file mode 100644 index 00000000..270a6560 --- /dev/null +++ b/.staging-trigger @@ -0,0 +1 @@ +staging trigger \ No newline at end of file diff --git a/canvas/src/components/__tests__/ApprovalBanner.test.tsx b/canvas/src/components/__tests__/ApprovalBanner.test.tsx index d88cfc1b..95f2300c 100644 --- a/canvas/src/components/__tests__/ApprovalBanner.test.tsx +++ b/canvas/src/components/__tests__/ApprovalBanner.test.tsx @@ -12,6 +12,8 @@ import { ApprovalBanner } from "../ApprovalBanner"; import { showToast } from "@/components/Toaster"; import { api } from "@/lib/api"; +afterEach(cleanup); + vi.mock("@/components/Toaster", () => ({ showToast: vi.fn(), })); diff --git a/canvas/src/components/__tests__/BundleDropZone.test.tsx b/canvas/src/components/__tests__/BundleDropZone.test.tsx index ed897b39..ff9258d5 100644 --- a/canvas/src/components/__tests__/BundleDropZone.test.tsx +++ b/canvas/src/components/__tests__/BundleDropZone.test.tsx @@ -11,6 +11,8 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { BundleDropZone } from "../BundleDropZone"; import { api } from "@/lib/api"; +afterEach(cleanup); + vi.mock("@/lib/api", () => ({ api: { post: vi.fn(), @@ -37,12 +39,24 @@ function makeBundle(name = "test-workspace"): File { }); } +/** Get the file input from a render result's container. + * + * NOTE: Both the hidden and the visible