Files
wehub-resource-sync 70bf21e064
Deploy (to testing) and Test Playground Preview Worker / Deploy Playground Preview Worker (testing) (push) Has been skipped
Deploy Workers Shared Staging / Deploy Workers Shared Staging (push) Failing after 0s
Prerelease / build (push) Has been skipped
Handle Changesets / Handle Changesets (push) Has been cancelled
Semgrep OSS scan / semgrep-oss (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:30:11 +08:00

73 lines
2.1 KiB
TypeScript

import { describe, test } from "vitest";
import { resolveCompatibilityOptions } from "../src/compatibility-flags";
describe("resolveCompatibilityOptions", () => {
test("it does not interfere with existing flags", ({ expect }) => {
expect(resolveCompatibilityOptions({ compatibility_flags: ["foo", "bar"] }))
.toMatchInlineSnapshot(`
{
"compatibilityDate": "2021-11-02",
"compatibilityFlags": [
"foo",
"bar",
],
}
`);
});
test("it opts you into new flags if you have a future date", ({ expect }) => {
const { compatibilityDate, compatibilityFlags } =
resolveCompatibilityOptions({
compatibility_flags: ["foo", "bar"],
compatibility_date: "2099-12-12",
});
expect(compatibilityDate).toEqual("2099-12-12");
expect(compatibilityFlags).toContain("foo");
expect(compatibilityFlags).toContain("bar");
expect(compatibilityFlags).toContain(
"assets_navigation_prefers_asset_serving"
);
});
test("it doesn't double you up if you've already opted into new flags and have a future date", ({
expect,
}) => {
const { compatibilityDate, compatibilityFlags } =
resolveCompatibilityOptions({
compatibility_flags: [
"foo",
"bar",
"assets_navigation_prefers_asset_serving",
],
compatibility_date: "2099-12-12",
});
expect(compatibilityDate).toEqual("2099-12-12");
expect(compatibilityFlags).toContain("foo");
expect(compatibilityFlags).toContain("bar");
expect(
compatibilityFlags.filter(
(flag) => flag === "assets_navigation_prefers_asset_serving"
).length
).toBe(1);
});
test("it doesn't opt you into new flags if you have a future date and have disabled it", ({
expect,
}) => {
const { compatibilityDate, compatibilityFlags } =
resolveCompatibilityOptions({
compatibility_flags: ["foo", "bar", "assets_navigation_has_no_effect"],
compatibility_date: "2099-12-12",
});
expect(compatibilityDate).toEqual("2099-12-12");
expect(compatibilityFlags).toContain("foo");
expect(compatibilityFlags).toContain("bar");
expect(compatibilityFlags).not.toContain(
"assets_navigation_prefers_asset_serving"
);
});
});