44 lines
1.4 KiB
TypeScript
44 lines
1.4 KiB
TypeScript
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);
|
|
});
|
|
}
|