test: dedupe plugin provider helper suites

This commit is contained in:
Peter Steinberger
2026-03-28 04:26:00 +00:00
parent 7e921050e3
commit 9155f3914a
10 changed files with 259 additions and 105 deletions

View File

@@ -94,6 +94,32 @@ function createWizardRuntimeParams(params?: {
};
}
function expectWizardResolutionCount(params: {
provider: ProviderPlugin;
config?: object;
env?: NodeJS.ProcessEnv;
expectedCount: number;
}) {
setResolvedProviders(params.provider);
resolveProviderWizardOptions(
createWizardRuntimeParams({
config: params.config,
env: params.env,
}),
);
resolveProviderWizardOptions(
createWizardRuntimeParams({
config: params.config,
env: params.env,
}),
);
expectProviderResolutionCall({
config: params.config,
env: params.env,
count: params.expectedCount,
});
}
function expectProviderResolutionCall(params?: {
config?: object;
env?: NodeJS.ProcessEnv;
@@ -112,21 +138,6 @@ function setResolvedProviders(...providers: ProviderPlugin[]) {
resolvePluginProviders.mockReturnValue(providers);
}
function resolveWizardOptionsTwice(params: {
config?: object;
env: NodeJS.ProcessEnv;
workspaceDir?: string;
}) {
const runtimeParams = createWizardRuntimeParams(params);
resolveProviderWizardOptions(runtimeParams);
resolveProviderWizardOptions(runtimeParams);
}
function expectWizardProviderCacheMiss(params: { config?: object; env: NodeJS.ProcessEnv }) {
resolveWizardOptionsTwice(params);
expectProviderResolutionCall({ ...params, count: 2 });
}
function expectSingleWizardChoice(params: {
provider: ProviderPlugin;
choice: string;
@@ -363,11 +374,12 @@ describe("provider wizard boundaries", () => {
}),
},
] as const)("$name", ({ env }) => {
const provider = createSglangSetupProvider();
const config = createSglangConfig();
setResolvedProviders(provider);
expectWizardProviderCacheMiss({ config, env });
expectWizardResolutionCount({
provider: createSglangSetupProvider(),
config: createSglangConfig(),
env,
expectedCount: 2,
});
});
it("expires provider-wizard memoization after the shortest plugin cache ttl", () => {