diff --git a/packages/mosaic/src/commands/fleet-provision.spec.ts b/packages/mosaic/src/commands/fleet-provision.spec.ts index 691814e..18799b0 100644 --- a/packages/mosaic/src/commands/fleet-provision.spec.ts +++ b/packages/mosaic/src/commands/fleet-provision.spec.ts @@ -3,11 +3,19 @@ import { constants } from 'node:fs'; import { tmpdir } from 'node:os'; import { dirname, join, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; -import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { loadFleetRoster } from './fleet.js'; import { generateRoster, runProvision } from './fleet-provision.js'; import { loadProfile } from './fleet-profiles.js'; +// These are INTEGRATION tests: each exercises real filesystem I/O — scanning the +// committed framework/fleet persona library, rendering YAML, writing to a temp +// mosaicHome, and round-tripping through the real roster parser. On a heavily +// contended CI runner (the whole monorepo's suites run in parallel) that genuine +// I/O can exceed vitest's 5s default even though it completes in ~400ms locally. +// Give the legitimately I/O-bound work generous headroom so CI is deterministic. +vi.setConfig({ testTimeout: 30_000 }); + // The real, committed library: packages/mosaic/src/commands -> framework/fleet. const frameworkFleet = resolve( dirname(fileURLToPath(import.meta.url)),