openclaw/src/test-utils/runtime-group-policy-contract.ts
2026-03-10 22:20:19 +00:00

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);
});
}