diff --git a/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts b/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts index 8980c1c4e37..03ba01a956c 100644 --- a/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts +++ b/packages/paperclip-runner/src/control-plane/durable-prp-control-plane.test.ts @@ -1445,7 +1445,7 @@ it("refuses a processing-drain absence claim while local or remote ingress remai } }); -describe.sequential("DurablePrpControlPlane", () => { +describe("DurablePrpControlPlane", () => { it.each(["pending_first", "all_pending", "completed_first"] as const)( "retains unanswered semantic input across the bounded event window (%s)", async (mode) => { diff --git a/packages/paperclip-runner/src/mock-core/local-runner.test.ts b/packages/paperclip-runner/src/mock-core/local-runner.test.ts index 8566e516e3d..3fe96dcdfe0 100644 --- a/packages/paperclip-runner/src/mock-core/local-runner.test.ts +++ b/packages/paperclip-runner/src/mock-core/local-runner.test.ts @@ -13,7 +13,7 @@ import { startLocalRunnerScenario, } from "./local-runner.js"; -describe.sequential("Local runner and fake harness", () => { +describe("Local runner and fake harness", () => { it("runs lifecycle, tool, file, structured-result, and process-exit events", async () => { const trace = await runLocalRunnerScenario({ scenario: "happy-path", delayMs: 1 }); const eventTypes = trace.events.map((event) => event.eventType); diff --git a/server/src/__tests__/activity-routes.test.ts b/server/src/__tests__/activity-routes.test.ts index 45871e32363..0bb574486c6 100644 --- a/server/src/__tests__/activity-routes.test.ts +++ b/server/src/__tests__/activity-routes.test.ts @@ -101,7 +101,7 @@ async function requestApp( } } -describe.sequential("activity routes", () => { +describe("activity routes", () => { beforeEach(() => { for (const mock of Object.values(mockActivityService)) mock.mockReset(); for (const mock of Object.values(mockHeartbeatService)) mock.mockReset(); diff --git a/server/src/__tests__/adapter-routes-authz.test.ts b/server/src/__tests__/adapter-routes-authz.test.ts index 685a30bbcb2..22aa7b2c268 100644 --- a/server/src/__tests__/adapter-routes-authz.test.ts +++ b/server/src/__tests__/adapter-routes-authz.test.ts @@ -258,7 +258,7 @@ function resetInstalledExternalAdapterState() { setOverridePaused("claude_local", false); } -describe.sequential("adapter management route authorization", () => { +describe("adapter management route authorization", () => { beforeEach(async () => { vi.resetModules(); vi.doUnmock("../services/adapter-plugin-store.js"); diff --git a/server/src/__tests__/agent-cross-tenant-authz-routes.test.ts b/server/src/__tests__/agent-cross-tenant-authz-routes.test.ts index d5fabca417e..9571e69b133 100644 --- a/server/src/__tests__/agent-cross-tenant-authz-routes.test.ts +++ b/server/src/__tests__/agent-cross-tenant-authz-routes.test.ts @@ -343,7 +343,7 @@ function resetMockDefaults() { mockLogActivity.mockImplementation(async () => undefined); } -describe.sequential("agent cross-tenant route authorization", () => { +describe("agent cross-tenant route authorization", () => { beforeEach(() => { resetMockDefaults(); }); diff --git a/server/src/__tests__/agent-permissions-routes.test.ts b/server/src/__tests__/agent-permissions-routes.test.ts index 4322844170b..8428ab4e6f5 100644 --- a/server/src/__tests__/agent-permissions-routes.test.ts +++ b/server/src/__tests__/agent-permissions-routes.test.ts @@ -267,7 +267,7 @@ async function requestApp( } } -describe.sequential("agent permission routes", () => { +describe("agent permission routes", () => { const routeModules = hoistModuleGraph(registerModuleMocks, async () => { const [{ errorHandler }, { agentRoutes }] = await Promise.all([ vi.importActual("../middleware/index.js"), diff --git a/server/src/__tests__/agent-skills-routes.test.ts b/server/src/__tests__/agent-skills-routes.test.ts index f64229e3d4c..23722b3abf5 100644 --- a/server/src/__tests__/agent-skills-routes.test.ts +++ b/server/src/__tests__/agent-skills-routes.test.ts @@ -249,7 +249,7 @@ function makeAgent(adapterType: string) { }; } -describe.sequential("agent skill routes", () => { +describe("agent skill routes", () => { beforeEach(async () => { vi.resetModules(); vi.doUnmock("../routes/agents.js"); diff --git a/server/src/__tests__/auth-routes.test.ts b/server/src/__tests__/auth-routes.test.ts index 7b3588ae07c..08d2a047f09 100644 --- a/server/src/__tests__/auth-routes.test.ts +++ b/server/src/__tests__/auth-routes.test.ts @@ -51,7 +51,7 @@ function createApp(actor: Express.Request["actor"], row: Record return app; } -describe.sequential("auth routes", () => { +describe("auth routes", () => { const baseUser = { id: "user-1", name: "Jane Example", diff --git a/server/src/__tests__/cases-routes.test.ts b/server/src/__tests__/cases-routes.test.ts index d758670c7f7..0fa40f81832 100644 --- a/server/src/__tests__/cases-routes.test.ts +++ b/server/src/__tests__/cases-routes.test.ts @@ -37,7 +37,7 @@ import { instanceSettingsService } from "../services/instance-settings.js"; import type { StorageService } from "../storage/types.js"; const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/chat-channels.integration.test.ts b/server/src/__tests__/chat-channels.integration.test.ts index 6798347819f..f8ac3bcc560 100644 --- a/server/src/__tests__/chat-channels.integration.test.ts +++ b/server/src/__tests__/chat-channels.integration.test.ts @@ -198,7 +198,7 @@ const embeddedPostgresSupport = externalTestDatabaseUrl ? { supported: true } : await getEmbeddedPostgresTestSupport(); const describeEmbeddedPostgres = embeddedPostgresSupport.supported - ? describe.sequential + ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { diff --git a/server/src/__tests__/cli-auth-routes.test.ts b/server/src/__tests__/cli-auth-routes.test.ts index f735c6f13ca..0b30c358567 100644 --- a/server/src/__tests__/cli-auth-routes.test.ts +++ b/server/src/__tests__/cli-auth-routes.test.ts @@ -90,7 +90,7 @@ async function createApp(actor: any, db: any = {} as any) { return app; } -describe.sequential("cli auth routes", () => { +describe("cli auth routes", () => { beforeEach(() => { vi.resetModules(); vi.doUnmock("../services/index.js"); diff --git a/server/src/__tests__/companies-route-cross-company-authz.test.ts b/server/src/__tests__/companies-route-cross-company-authz.test.ts index 58adaa4aa54..4e49604c9dc 100644 --- a/server/src/__tests__/companies-route-cross-company-authz.test.ts +++ b/server/src/__tests__/companies-route-cross-company-authz.test.ts @@ -215,7 +215,7 @@ function boardActor(input: { }; } -describe.sequential("company route cross-company authorization", () => { +describe("company route cross-company authorization", () => { beforeEach(() => { vi.resetModules(); vi.doUnmock("../routes/authz.js"); diff --git a/server/src/__tests__/company-import-transfer-routes.test.ts b/server/src/__tests__/company-import-transfer-routes.test.ts index b1dd3f9d840..dae45dbd46c 100644 --- a/server/src/__tests__/company-import-transfer-routes.test.ts +++ b/server/src/__tests__/company-import-transfer-routes.test.ts @@ -89,7 +89,7 @@ vi.mock("../services/company-import-transfers.js", async (importOriginal) => { const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); const describeEmbeddedPostgres = embeddedPostgresSupport.supported - ? describe.sequential + ? describe : describe.skip; const companyId = "11111111-1111-4111-8111-111111111111"; diff --git a/server/src/__tests__/company-portability-routes.test.ts b/server/src/__tests__/company-portability-routes.test.ts index 9872cd2f6b1..bea84600887 100644 --- a/server/src/__tests__/company-portability-routes.test.ts +++ b/server/src/__tests__/company-portability-routes.test.ts @@ -334,7 +334,7 @@ const importMeta = { collisionStrategy: importRequest.collisionStrategy, }; -describe.sequential("company portability routes", () => { +describe("company portability routes", () => { beforeEach(() => { vi.clearAllMocks(); mockAgentService.getById.mockImplementation(async (id: string) => ({ diff --git a/server/src/__tests__/company-skills-import-authz-routes.test.ts b/server/src/__tests__/company-skills-import-authz-routes.test.ts index b7a945d1e41..a889767582a 100644 --- a/server/src/__tests__/company-skills-import-authz-routes.test.ts +++ b/server/src/__tests__/company-skills-import-authz-routes.test.ts @@ -26,7 +26,7 @@ import { errorHandler } from "../middleware/error-handler.js"; import { companySkillRoutes } from "../routes/company-skills.js"; const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/environment-selection-route-guards.test.ts b/server/src/__tests__/environment-selection-route-guards.test.ts index 195753a1264..ff0b60ee1f9 100644 --- a/server/src/__tests__/environment-selection-route-guards.test.ts +++ b/server/src/__tests__/environment-selection-route-guards.test.ts @@ -164,7 +164,7 @@ async function closeServer(server: Server | null) { }); } -describe.sequential("execution environment route guards", () => { +describe("execution environment route guards", () => { afterAll(async () => { await closeServer(projectServer); await closeServer(issueServer); diff --git a/server/src/__tests__/execution-workspace-runtime-control-conflict.test.ts b/server/src/__tests__/execution-workspace-runtime-control-conflict.test.ts index c733af6a365..07976472721 100644 --- a/server/src/__tests__/execution-workspace-runtime-control-conflict.test.ts +++ b/server/src/__tests__/execution-workspace-runtime-control-conflict.test.ts @@ -236,7 +236,7 @@ function mockVerifiedReseed( * stable 409 while a control is genuinely live, and a start that fails must leave the workspace * stopped and retryable instead of "desired running" with residue. */ -describe.sequential("execution workspace runtime control conflict and failure reconciliation", () => { +describe("execution workspace runtime control conflict and failure reconciliation", () => { beforeEach(() => { vi.clearAllMocks(); mockSpawn.mockReset(); diff --git a/server/src/__tests__/execution-workspaces-routes.test.ts b/server/src/__tests__/execution-workspaces-routes.test.ts index 89111b9b0aa..8f5e1c193b3 100644 --- a/server/src/__tests__/execution-workspaces-routes.test.ts +++ b/server/src/__tests__/execution-workspaces-routes.test.ts @@ -88,7 +88,7 @@ function createApp(actor: Record = { return app; } -describe.sequential("execution workspace routes", () => { +describe("execution workspace routes", () => { beforeEach(() => { vi.clearAllMocks(); mockAccessService.decide.mockResolvedValue({ diff --git a/server/src/__tests__/github-connection-events.test.ts b/server/src/__tests__/github-connection-events.test.ts index aef64320619..905e6e7ea33 100644 --- a/server/src/__tests__/github-connection-events.test.ts +++ b/server/src/__tests__/github-connection-events.test.ts @@ -22,7 +22,7 @@ import { const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; -describeEmbeddedPostgres.sequential("GitHub connection event delivery", () => { +describeEmbeddedPostgres("GitHub connection event delivery", () => { let db!: ReturnType; let tempDb: Awaited> | null = null; diff --git a/server/src/__tests__/invite-test-resolution-route.test.ts b/server/src/__tests__/invite-test-resolution-route.test.ts index 7ca22a99c4f..631b49cb558 100644 --- a/server/src/__tests__/invite-test-resolution-route.test.ts +++ b/server/src/__tests__/invite-test-resolution-route.test.ts @@ -74,7 +74,7 @@ async function createApp( return app; } -describe.sequential("GET /invites/:token/test-resolution", () => { +describe("GET /invites/:token/test-resolution", () => { beforeEach(() => { vi.clearAllMocks(); }); diff --git a/server/src/__tests__/issue-closed-workspace-routes.test.ts b/server/src/__tests__/issue-closed-workspace-routes.test.ts index b15070a9065..4d405a71b13 100644 --- a/server/src/__tests__/issue-closed-workspace-routes.test.ts +++ b/server/src/__tests__/issue-closed-workspace-routes.test.ts @@ -204,7 +204,7 @@ async function assertNoBackgroundClearWithinRetryWindow() { expect(mockExecutionWorkspaceService.clearReopenPendingConsumptionForUnconsumedReopen).not.toHaveBeenCalled(); } -describe.sequential("closed isolated workspace issue routes", () => { +describe("closed isolated workspace issue routes", () => { const routeModules = hoistModuleGraph(registerServiceMocks, async () => { const [{ issueRoutes }, { errorHandler }] = await Promise.all([ vi.importActual("../routes/issues.js"), diff --git a/server/src/__tests__/issue-comment-cancel-routes.test.ts b/server/src/__tests__/issue-comment-cancel-routes.test.ts index 289a4dbdfa0..e4ef7fb9746 100644 --- a/server/src/__tests__/issue-comment-cancel-routes.test.ts +++ b/server/src/__tests__/issue-comment-cancel-routes.test.ts @@ -191,7 +191,7 @@ function makeComment(overrides: Record = {}) { }; } -describe.sequential("issue comment cancel routes", () => { +describe("issue comment cancel routes", () => { const routeModules = hoistModuleGraph(registerModuleMocks, async () => { const [{ issueRoutes }, { errorHandler }] = await Promise.all([ vi.importActual("../routes/issues.js"), diff --git a/server/src/__tests__/issue-comment-redaction.test.ts b/server/src/__tests__/issue-comment-redaction.test.ts index d44a9113360..a34b27ae2d5 100644 --- a/server/src/__tests__/issue-comment-redaction.test.ts +++ b/server/src/__tests__/issue-comment-redaction.test.ts @@ -43,7 +43,7 @@ const embeddedPostgresSupport = externalTestDatabaseUrl ? { supported: true } : await getEmbeddedPostgresTestSupport(); const describeEmbeddedPostgres = embeddedPostgresSupport.supported - ? describe.sequential + ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { diff --git a/server/src/__tests__/issue-comment-reopen-routes.test.ts b/server/src/__tests__/issue-comment-reopen-routes.test.ts index 23443339205..d0cc06b0f2d 100644 --- a/server/src/__tests__/issue-comment-reopen-routes.test.ts +++ b/server/src/__tests__/issue-comment-reopen-routes.test.ts @@ -317,7 +317,7 @@ async function waitForWakeup(assertion: () => void) { await vi.waitFor(assertion); } -describe.sequential("issue comment reopen routes", () => { +describe("issue comment reopen routes", () => { beforeEach(() => { vi.clearAllMocks(); mockIssueService.getById.mockReset(); diff --git a/server/src/__tests__/issue-queued-comments-routes.test.ts b/server/src/__tests__/issue-queued-comments-routes.test.ts index 552cab5c486..bb42982787b 100644 --- a/server/src/__tests__/issue-queued-comments-routes.test.ts +++ b/server/src/__tests__/issue-queued-comments-routes.test.ts @@ -45,7 +45,7 @@ vi.mock("../services/native-runtime/native-session-executor.js", async (importOr const { NativeSessionSteeringError } = await import("../services/native-runtime/native-session-executor.js"); const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/issue-thread-interaction-routes.test.ts b/server/src/__tests__/issue-thread-interaction-routes.test.ts index f44c061209d..e2db55feecd 100644 --- a/server/src/__tests__/issue-thread-interaction-routes.test.ts +++ b/server/src/__tests__/issue-thread-interaction-routes.test.ts @@ -308,7 +308,7 @@ async function resolveMockInteraction( return interaction; } -describe.sequential("issue thread interaction routes", () => { +describe("issue thread interaction routes", () => { beforeEach(async () => { vi.resetModules(); vi.doUnmock("../routes/issues.js"); diff --git a/server/src/__tests__/issues-goal-context-routes.test.ts b/server/src/__tests__/issues-goal-context-routes.test.ts index 843fd17a379..952dbacaa4f 100644 --- a/server/src/__tests__/issues-goal-context-routes.test.ts +++ b/server/src/__tests__/issues-goal-context-routes.test.ts @@ -190,7 +190,7 @@ const projectGoal = { updatedAt: new Date("2026-03-20T00:00:00Z"), }; -describe.sequential("issue goal context routes", () => { +describe("issue goal context routes", () => { beforeEach(() => { vi.clearAllMocks(); mockAccessService.decide.mockResolvedValue({ diff --git a/server/src/__tests__/merged-pr-confirmation-sweep.test.ts b/server/src/__tests__/merged-pr-confirmation-sweep.test.ts index ddc6fe9f096..1e4d56436e7 100644 --- a/server/src/__tests__/merged-pr-confirmation-sweep.test.ts +++ b/server/src/__tests__/merged-pr-confirmation-sweep.test.ts @@ -134,7 +134,7 @@ describe("merged pull-request confirmation extraction", () => { const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; -describeEmbeddedPostgres.sequential("merged pull-request confirmation sweep", () => { +describeEmbeddedPostgres("merged pull-request confirmation sweep", () => { let db!: ReturnType; let tempDb: Awaited> | null = null; diff --git a/server/src/__tests__/multilingual-issues-routes.test.ts b/server/src/__tests__/multilingual-issues-routes.test.ts index 4b0eac47765..3ed24b5b8e5 100644 --- a/server/src/__tests__/multilingual-issues-routes.test.ts +++ b/server/src/__tests__/multilingual-issues-routes.test.ts @@ -12,7 +12,7 @@ import { issueRoutes } from "../routes/issues.js"; import type { StorageService } from "../storage/types.js"; const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/openclaw-invite-prompt-route.test.ts b/server/src/__tests__/openclaw-invite-prompt-route.test.ts index a50de066c0d..3599e2bc924 100644 --- a/server/src/__tests__/openclaw-invite-prompt-route.test.ts +++ b/server/src/__tests__/openclaw-invite-prompt-route.test.ts @@ -126,7 +126,7 @@ function createApp(actor: Record, db: Record) return app; } -describe.sequential("POST /companies/:companyId/openclaw/invite-prompt", () => { +describe("POST /companies/:companyId/openclaw/invite-prompt", () => { const companyBranding = { name: "Acme AI", logoAssetId: "logo-1", diff --git a/server/src/__tests__/photon/channel.integration.test.ts b/server/src/__tests__/photon/channel.integration.test.ts index 257992f8ee3..1c33b0a565b 100644 --- a/server/src/__tests__/photon/channel.integration.test.ts +++ b/server/src/__tests__/photon/channel.integration.test.ts @@ -73,7 +73,7 @@ function idleStream(): TypedEventStream { async () => close(), ); } -describe.sequential("iMessage Photon channel control plane", () => { +describe("iMessage Photon channel control plane", () => { let database: Awaited>; let db: ReturnType; let secrets: string; diff --git a/server/src/__tests__/pipelines-routes.test.ts b/server/src/__tests__/pipelines-routes.test.ts index cfdc6c1fb4e..3cb7bb7243d 100644 --- a/server/src/__tests__/pipelines-routes.test.ts +++ b/server/src/__tests__/pipelines-routes.test.ts @@ -46,7 +46,7 @@ import { import { instanceSettingsService } from "../services/instance-settings.js"; const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/plugin-install-autobuild.test.ts b/server/src/__tests__/plugin-install-autobuild.test.ts index d9d3a599610..79fec328c51 100644 --- a/server/src/__tests__/plugin-install-autobuild.test.ts +++ b/server/src/__tests__/plugin-install-autobuild.test.ts @@ -38,7 +38,7 @@ vi.mock("../services/live-events.js", () => ({ })); const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/plugin-install-route-security.test.ts b/server/src/__tests__/plugin-install-route-security.test.ts index ff8ad17be49..eedde8598be 100644 --- a/server/src/__tests__/plugin-install-route-security.test.ts +++ b/server/src/__tests__/plugin-install-route-security.test.ts @@ -43,7 +43,7 @@ vi.mock("../services/live-events.js", () => ({ })); const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/plugin-routes-authz.test.ts b/server/src/__tests__/plugin-routes-authz.test.ts index 3bded76b2e2..35264ee14cf 100644 --- a/server/src/__tests__/plugin-routes-authz.test.ts +++ b/server/src/__tests__/plugin-routes-authz.test.ts @@ -144,7 +144,7 @@ function readyPlugin() { }); } -describe.sequential("plugin install and upgrade authz", () => { +describe("plugin install and upgrade authz", () => { beforeEach(() => { vi.clearAllMocks(); }); @@ -410,7 +410,7 @@ describe.sequential("plugin install and upgrade authz", () => { }, 20_000); }); -describe.sequential("scoped plugin API routes", () => { +describe("scoped plugin API routes", () => { beforeEach(() => { vi.clearAllMocks(); }); @@ -476,7 +476,7 @@ describe.sequential("scoped plugin API routes", () => { }, 20_000); }); -describe.sequential("plugin local folder routes", () => { +describe("plugin local folder routes", () => { beforeEach(() => { vi.clearAllMocks(); mockRegistry.getCompanySettings.mockResolvedValue(null); @@ -531,7 +531,7 @@ describe.sequential("plugin local folder routes", () => { }); }); -describe.sequential("plugin tool and bridge authz", () => { +describe("plugin tool and bridge authz", () => { beforeEach(() => { vi.clearAllMocks(); }); @@ -1104,7 +1104,7 @@ describe.sequential("plugin tool and bridge authz", () => { }); }); -describe.sequential("operator-hidden plugin management floor", () => { +describe("operator-hidden plugin management floor", () => { beforeEach(() => { vi.clearAllMocks(); process.env.PAPERCLIP_HIDDEN_SETTINGS = "instance.plugins"; diff --git a/server/src/__tests__/plugin-scoped-api-routes.test.ts b/server/src/__tests__/plugin-scoped-api-routes.test.ts index 4e2ce297bc0..36e8444197f 100644 --- a/server/src/__tests__/plugin-scoped-api-routes.test.ts +++ b/server/src/__tests__/plugin-scoped-api-routes.test.ts @@ -94,7 +94,7 @@ async function createApp(input: { return { app, workerManager }; } -describe.sequential("plugin scoped API routes", () => { +describe("plugin scoped API routes", () => { const pluginId = "11111111-1111-4111-8111-111111111111"; const companyId = "22222222-2222-4222-8222-222222222222"; const agentId = "33333333-3333-4333-8333-333333333333"; diff --git a/server/src/__tests__/plugin-secrets-handler.test.ts b/server/src/__tests__/plugin-secrets-handler.test.ts index f073b65a93e..002384c1cf5 100644 --- a/server/src/__tests__/plugin-secrets-handler.test.ts +++ b/server/src/__tests__/plugin-secrets-handler.test.ts @@ -23,7 +23,7 @@ import { secretService } from "../services/secrets.js"; const pluginId = "11111111-1111-4111-8111-111111111111"; const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/routines-e2e.test.ts b/server/src/__tests__/routines-e2e.test.ts index 42e7ef0b465..d08c2b51ada 100644 --- a/server/src/__tests__/routines-e2e.test.ts +++ b/server/src/__tests__/routines-e2e.test.ts @@ -87,7 +87,7 @@ function registerRoutineServiceMock() { } const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/teams-catalog-install-no-overrides.test.ts b/server/src/__tests__/teams-catalog-install-no-overrides.test.ts index 7e085dd8e69..562a2f39040 100644 --- a/server/src/__tests__/teams-catalog-install-no-overrides.test.ts +++ b/server/src/__tests__/teams-catalog-install-no-overrides.test.ts @@ -12,7 +12,7 @@ import { import { teamsCatalogService } from "../services/teams-catalog.js"; const embeddedPostgresSupport = await getEmbeddedPostgresTestSupport(); -const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe.sequential : describe.skip; +const describeEmbeddedPostgres = embeddedPostgresSupport.supported ? describe : describe.skip; if (!embeddedPostgresSupport.supported) { console.warn( diff --git a/server/src/__tests__/workspace-runtime-routes-authz.test.ts b/server/src/__tests__/workspace-runtime-routes-authz.test.ts index cd7efe6ea47..98522fd333d 100644 --- a/server/src/__tests__/workspace-runtime-routes-authz.test.ts +++ b/server/src/__tests__/workspace-runtime-routes-authz.test.ts @@ -202,7 +202,7 @@ function buildExecutionWorkspace(overrides: Record = {}) { }; } -describe.sequential("workspace runtime service route authorization", () => { +describe("workspace runtime service route authorization", () => { const projectId = "11111111-1111-4111-8111-111111111111"; const workspaceId = "22222222-2222-4222-8222-222222222222"; const executionWorkspaceId = "33333333-3333-4333-8333-333333333333"; diff --git a/server/src/__tests__/write-path-membership.test.ts b/server/src/__tests__/write-path-membership.test.ts index 2a4a7658439..39d25762185 100644 --- a/server/src/__tests__/write-path-membership.test.ts +++ b/server/src/__tests__/write-path-membership.test.ts @@ -116,7 +116,7 @@ function resetMocks() { mockGetTelemetryClient.mockReturnValue({ track: vi.fn() }); } -describe.sequential("write-path membership checks (viewer / inactive)", () => { +describe("write-path membership checks (viewer / inactive)", () => { beforeEach(() => { resetMocks(); }); diff --git a/server/src/services/chat-discord-command-registration-store.test.ts b/server/src/services/chat-discord-command-registration-store.test.ts index 41dedaae65e..02f8c877475 100644 --- a/server/src/services/chat-discord-command-registration-store.test.ts +++ b/server/src/services/chat-discord-command-registration-store.test.ts @@ -32,7 +32,7 @@ const external = process.env.PAPERCLIP_TEST_DATABASE_URL; const support = external ? { supported: true } : await getEmbeddedPostgresTestSupport(); -const suite = support.supported ? describe.sequential : describe.skip; +const suite = support.supported ? describe : describe.skip; const token = "PRIVATE-DISCORD-REGISTRATION-TOKEN"; let serial = 0n; const appId = () => diff --git a/server/src/services/chat-teams-file-publication.test.ts b/server/src/services/chat-teams-file-publication.test.ts index fbea0cf7968..72f48c6f93e 100644 --- a/server/src/services/chat-teams-file-publication.test.ts +++ b/server/src/services/chat-teams-file-publication.test.ts @@ -29,7 +29,7 @@ const external = process.env.PAPERCLIP_TEST_DATABASE_URL; const support = external ? { supported: true } : await getEmbeddedPostgresTestSupport(); -const suite = support.supported ? describe.sequential : describe.skip; +const suite = support.supported ? describe : describe.skip; suite("Teams same-transaction publication projection (real PostgreSQL)", () => { let db: ReturnType; let temporary: diff --git a/server/src/services/chat-teams-file-transfers.test.ts b/server/src/services/chat-teams-file-transfers.test.ts index 7b5814dd7e1..ad6b5084c17 100644 --- a/server/src/services/chat-teams-file-transfers.test.ts +++ b/server/src/services/chat-teams-file-transfers.test.ts @@ -48,7 +48,7 @@ const external = process.env.PAPERCLIP_TEST_DATABASE_URL; const support = external ? { supported: true } : await getEmbeddedPostgresTestSupport(); -const suite = support.supported ? describe.sequential : describe.skip; +const suite = support.supported ? describe : describe.skip; const bytes = Buffer.from("Exact Teams file bytes\n"); const uploadUrl = "https://tenant-my.sharepoint.com/personal/user/_api/upload?token=PRIVATE-TEAMS-UPLOAD-CANARY"; diff --git a/server/src/services/native-runtime/native-warm-transition-restart.integration.test.ts b/server/src/services/native-runtime/native-warm-transition-restart.integration.test.ts index 7fd2fe0ac19..c60b376fed5 100644 --- a/server/src/services/native-runtime/native-warm-transition-restart.integration.test.ts +++ b/server/src/services/native-runtime/native-warm-transition-restart.integration.test.ts @@ -44,7 +44,7 @@ const managedFixtureDirectory = process.env.PAPERCLIP_WARM_TRANSITION_MANAGED_FIXTURE_DIRECTORY; const databaseUrl = process.env.PAPERCLIP_TEST_DATABASE_URL; const generated = - fixtureDirectory && databaseUrl ? describe.sequential : describe.skip; + fixtureDirectory && databaseUrl ? describe : describe.skip; type Identity = { runnerInstanceId: string; diff --git a/server/vitest.config.ts b/server/vitest.config.ts index 239bce1bc3b..71e8df328a2 100644 --- a/server/vitest.config.ts +++ b/server/vitest.config.ts @@ -39,6 +39,9 @@ export default defineConfig({ maxWorkers: 1, minWorkers: 1, pool: "forks", + // Server suites share process state and one embedded Postgres instance, + // so tests inside a file must run one at a time. Do not set + // sequence.concurrent to true. sequence: { concurrent: false, hooks: "list",