mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-07 18:26:17 +00:00
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
STUDIO_SDK_OPERATION_FAMILIES,
|
|
isSdkFamilyEnabled,
|
|
renderStudioSdkCutoverReport,
|
|
resolveEnabledSdkFamilies,
|
|
} from "./sdkCutoverPolicy";
|
|
|
|
describe("Studio SDK operation-family policy", () => {
|
|
it("enables no family from the master switch alone", () => {
|
|
expect(resolveEnabledSdkFamilies({}, true).size).toBe(0);
|
|
expect(resolveEnabledSdkFamilies({ VITE_STUDIO_SDK_CUTOVER_FAMILIES: "dom" }, false).size).toBe(
|
|
0,
|
|
);
|
|
});
|
|
|
|
it("enables only explicitly selected families", () => {
|
|
const enabled = resolveEnabledSdkFamilies(
|
|
{ VITE_STUDIO_SDK_CUTOVER_FAMILIES: "dom, gsap-keyframe" },
|
|
true,
|
|
);
|
|
expect(isSdkFamilyEnabled(true, enabled, "dom")).toBe(true);
|
|
expect(isSdkFamilyEnabled(true, enabled, "gsap-keyframe")).toBe(true);
|
|
expect(isSdkFamilyEnabled(true, enabled, "timing")).toBe(false);
|
|
});
|
|
|
|
it("rejects misspelled family configuration", () => {
|
|
expect(() =>
|
|
resolveEnabledSdkFamilies({ VITE_STUDIO_SDK_CUTOVER_FAMILIES: "dom,gsap-twen" }, true),
|
|
).toThrow("Unknown Studio SDK cutover families: gsap-twen");
|
|
});
|
|
|
|
it("reports every family with owner, deadline, evidence, and graduation state", () => {
|
|
const report = renderStudioSdkCutoverReport();
|
|
for (const family of STUDIO_SDK_OPERATION_FAMILIES) expect(report).toContain(`| ${family} |`);
|
|
expect(report).toContain("Graduated");
|
|
});
|
|
});
|