From 515fe51d8c4ed5f7c63e9edfb91fa1df1fb5fa7e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 16 Aug 2026 22:52:46 -0700 Subject: [PATCH] perf(test): reuse setup registry module (#125087) --- src/plugins/setup-registry.test.ts | 37 +++++++++++++----------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/src/plugins/setup-registry.test.ts b/src/plugins/setup-registry.test.ts index ebc0b3f21884..5131fdb93977 100644 --- a/src/plugins/setup-registry.test.ts +++ b/src/plugins/setup-registry.test.ts @@ -33,9 +33,7 @@ let resolvePluginSetupRegistry: typeof import("./setup-registry.js").resolvePlug let resolvePluginSetupProviderCore: typeof import("./setup-registry.js").resolvePluginSetupProviderCore; let resolvePluginSetupCliBackend: typeof import("./setup-registry.js").resolvePluginSetupCliBackend; let runPluginSetupConfigMigrations: typeof import("./setup-registry.js").runPluginSetupConfigMigrations; -let setPluginSetupRegistryModuleLoaderFactoryForTest: - | typeof import("./setup-registry.test-fixtures.js").setPluginSetupRegistryModuleLoaderFactoryForTest - | undefined; +let setPluginSetupRegistryModuleLoaderFactoryForTest: typeof import("./setup-registry.test-fixtures.js").setPluginSetupRegistryModuleLoaderFactoryForTest; function forceNodeRuntimeVersionsForTest(): () => void { const originalVersions = process.versions; @@ -203,7 +201,7 @@ function firstRecordArg(mock: { mock: { calls: ReadonlyArray { - setPluginSetupRegistryModuleLoaderFactoryForTest?.(undefined); + setPluginSetupRegistryModuleLoaderFactoryForTest(undefined); cleanupTrackedTempDirs(tempDirs); }); @@ -216,11 +214,18 @@ describe("setup-registry module loader", () => { beforeAll(async () => { resetRegistryJitiMocks(); + // The non-isolated plugin shard may cache this owner through a sibling first. + // Refresh it once after this file's hoisted mocks, then reuse it for every case. vi.resetModules(); - const module = await import("./setup-registry.js"); - const fixtures = await import("./setup-registry.test-fixtures.js"); - fixtures.setPluginSetupRegistryModuleLoaderFactoryForTest(mocks.createJiti); - fixtures.clearPluginSetupRegistryCache(); + ({ + resolvePluginSetupRegistry, + resolvePluginSetupProviderCore, + resolvePluginSetupCliBackend, + runPluginSetupConfigMigrations, + } = await import("./setup-registry.js")); + ({ clearPluginSetupRegistryCache, setPluginSetupRegistryModuleLoaderFactoryForTest } = + await import("./setup-registry.test-fixtures.js")); + setPluginSetupRegistryModuleLoaderFactoryForTest(mocks.createJiti); const pluginRoot = makeTempDir(); fs.writeFileSync(path.join(pluginRoot, "setup-api.js"), "export default {};\n", "utf-8"); mocks.loadPluginManifestRegistry.mockReturnValue({ @@ -231,7 +236,7 @@ describe("setup-registry module loader", () => { try { withMockedWindowsPlatform(() => { - module.resolvePluginSetupRegistry({ + resolvePluginSetupRegistry({ workspaceDir: pluginRoot, env: {}, }); @@ -247,22 +252,12 @@ describe("setup-registry module loader", () => { filename: mockArg(mocks.createJiti, 0, 0), options: requireRecord(mockArg(mocks.createJiti, 0, 1)), }; - fixtures.setPluginSetupRegistryModuleLoaderFactoryForTest(undefined); + setPluginSetupRegistryModuleLoaderFactoryForTest(undefined); }); - beforeEach(async () => { + beforeEach(() => { resetRegistryJitiMocks(); - vi.resetModules(); - ({ - resolvePluginSetupRegistry, - resolvePluginSetupProviderCore, - resolvePluginSetupCliBackend, - runPluginSetupConfigMigrations, - } = await import("./setup-registry.js")); - ({ clearPluginSetupRegistryCache, setPluginSetupRegistryModuleLoaderFactoryForTest } = - await import("./setup-registry.test-fixtures.js")); setPluginSetupRegistryModuleLoaderFactoryForTest(mocks.createJiti); - clearPluginSetupRegistryCache(); }); it("uses the runtime-supported source-transform boundary on Windows for setup-api modules", () => {