import { expect, it } from "vitest"; import type { ResolveProviderRuntimeGroupPolicyParams, RuntimeGroupPolicyResolution, } from "../config/runtime-group-policy.js"; import type { GroupPolicy } from "../config/types.base.js"; type RuntimeGroupPolicyResolver = ( params: ResolveProviderRuntimeGroupPolicyParams, ) => RuntimeGroupPolicyResolution; export function installProviderRuntimeGroupPolicyFallbackSuite(params: { configuredLabel: string; defaultGroupPolicyUnderTest: GroupPolicy; missingConfigLabel: string; missingDefaultLabel: string; resolve: RuntimeGroupPolicyResolver; }) { it(params.missingConfigLabel, () => { const resolved = params.resolve({ providerConfigPresent: false, }); expect(resolved.groupPolicy).toBe("allowlist"); expect(resolved.providerMissingFallbackApplied).toBe(true); }); it(params.configuredLabel, () => { const resolved = params.resolve({ providerConfigPresent: true, }); expect(resolved.groupPolicy).toBe("open"); expect(resolved.providerMissingFallbackApplied).toBe(false); }); it(params.missingDefaultLabel, () => { const resolved = params.resolve({ providerConfigPresent: false, defaultGroupPolicy: params.defaultGroupPolicyUnderTest, }); expect(resolved.groupPolicy).toBe("allowlist"); expect(resolved.providerMissingFallbackApplied).toBe(true); }); }