feat: add deployment reload controls
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import {
|
||||
checkDeploymentVersion,
|
||||
normalizeReloadPrefix,
|
||||
shouldReloadPath,
|
||||
} from "@/lib/realtime/deployment-refresh";
|
||||
|
||||
describe("deployment refresh policy", () => {
|
||||
test("uses the first version as a baseline and detects later changes", () => {
|
||||
expect(checkDeploymentVersion(null, "build-a")).toEqual({
|
||||
version: "build-a",
|
||||
hasUpdate: false,
|
||||
});
|
||||
expect(checkDeploymentVersion("build-a", "build-a")).toEqual({
|
||||
version: "build-a",
|
||||
hasUpdate: false,
|
||||
});
|
||||
expect(checkDeploymentVersion("build-a", "build-b")).toEqual({
|
||||
version: "build-b",
|
||||
hasUpdate: true,
|
||||
});
|
||||
});
|
||||
|
||||
test("matches global and pathname-prefix reloads", () => {
|
||||
expect(shouldReloadPath(null, "/profile")).toBeTrue();
|
||||
expect(shouldReloadPath("/admin", "/admin/backend")).toBeTrue();
|
||||
expect(shouldReloadPath("/form", "/profile")).toBeFalse();
|
||||
});
|
||||
|
||||
test("normalizes valid prefixes and rejects invalid ones", () => {
|
||||
expect(normalizeReloadPrefix(null)).toBeNull();
|
||||
expect(normalizeReloadPrefix(" /admin ")).toBe("/admin");
|
||||
expect(() => normalizeReloadPrefix("admin")).toThrow(
|
||||
"Reload path must start with /",
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user