Skip to content

Commit 3b3d4f5

Browse files
test(cli): move render module collection outside hooks (#2780)
1 parent b1edeeb commit 3b3d4f5

1 file changed

Lines changed: 14 additions & 33 deletions

File tree

packages/cli/src/commands/render.test.ts

Lines changed: 14 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// fallow-ignore-file code-duplication
2-
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from "vitest";
2+
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
33
import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
44
import { tmpdir } from "node:os";
55
import { join } from "node:path";
@@ -181,26 +181,19 @@ vi.mock("../utils/orphanCleanup.js", () => ({
181181
}),
182182
}));
183183

184+
// Collect the heavy render module once, after Vitest has hoisted the mocks
185+
// above. Keeping this import out of a hook means parallel monorepo contention
186+
// cannot turn module collection into a `beforeAll` timeout.
187+
const renderModule = await import("./render.js");
188+
184189
describe("renderLocal browser GPU config", () => {
185190
const savedEnv = new Map<string, string | undefined>();
186-
// Pre-resolve once. The first dynamic `import("./render.js")` in this file
187-
// cold-loads a heavy module graph (core + engine + producer, incl. linkedom),
188-
// slow under the parallel monorepo run — the generous hook timeout that
189-
// absorbs that contention now lives in vitest.config.ts (shared by all CLI
190-
// suites). Importing once in `beforeAll` keeps every test fast and isolated.
191-
let renderLocal: typeof import("./render.js").renderLocal;
192-
let resolveBrowserGpuForCli: typeof import("./render.js").resolveBrowserGpuForCli;
193-
let renderLintContinuationHint: typeof import("./render.js").renderLintContinuationHint;
194-
let resetTrialState: typeof import("./render.js").__resetDeParallelRouterTrialStateForTests;
195-
196-
beforeAll(async () => {
197-
({
198-
renderLocal,
199-
resolveBrowserGpuForCli,
200-
renderLintContinuationHint,
201-
__resetDeParallelRouterTrialStateForTests: resetTrialState,
202-
} = await import("./render.js"));
203-
});
191+
const {
192+
renderLocal,
193+
resolveBrowserGpuForCli,
194+
renderLintContinuationHint,
195+
__resetDeParallelRouterTrialStateForTests: resetTrialState,
196+
} = renderModule;
204197

205198
it("points strict warning-only renders to --strict-all", () => {
206199
expect(renderLintContinuationHint(true)).toContain("--strict-all");
@@ -713,15 +706,9 @@ describe("renderLocal browser GPU config", () => {
713706
});
714707

715708
describe("renderLocal — DE parallel-router CLI trial", () => {
716-
let renderLocal: typeof import("./render.js").renderLocal;
717-
let resetTrialState: typeof import("./render.js").__resetDeParallelRouterTrialStateForTests;
709+
const { renderLocal, __resetDeParallelRouterTrialStateForTests: resetTrialState } = renderModule;
718710
const savedEnv = new Map<string, string | undefined>();
719711

720-
beforeAll(async () => {
721-
({ renderLocal, __resetDeParallelRouterTrialStateForTests: resetTrialState } =
722-
await import("./render.js"));
723-
});
724-
725712
beforeEach(() => {
726713
producerState.createdJobs = [];
727714
producerState.executeImpl = async () => undefined;
@@ -1110,13 +1097,7 @@ describe("renderLocal — DE parallel-router CLI trial", () => {
11101097
});
11111098

11121099
describe("checkRenderResolutionPreflight", () => {
1113-
let checkRenderResolutionPreflight: typeof import("./render.js").checkRenderResolutionPreflight;
1114-
1115-
// Cold-imports render.js (heavy graph); the generous hook timeout for parallel
1116-
// CI contention lives in vitest.config.ts. See the note above.
1117-
beforeAll(async () => {
1118-
({ checkRenderResolutionPreflight } = await import("./render.js"));
1119-
});
1100+
const { checkRenderResolutionPreflight } = renderModule;
11201101

11211102
// Dims must be read the same way the producer's compiler reads them:
11221103
// `data-width` / `data-height` on the `[data-composition-id]` root.

0 commit comments

Comments
 (0)