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
73 lines
2.1 KiB
TypeScript
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"
|
|
);
|
|
});
|
|
});
|