claude-code-router/packages/ui/test/unit/polling.test.ts

44 lines
1.2 KiB
TypeScript

import assert from "node:assert/strict";
import test from "node:test";
import { preserveEqualPollingSnapshot } from "@ccr/ui/pages/home/shared/polling.ts";
test("polling snapshots preserve the current reference when nested content is unchanged", () => {
const current = {
profiles: [
{
botGateway: { outboxCount: 0, state: "connected" },
profileId: "zcode",
state: "running"
}
]
};
const next = {
profiles: [
{
state: "running",
profileId: "zcode",
botGateway: { state: "connected", outboxCount: 0 }
}
]
};
assert.equal(preserveEqualPollingSnapshot(current, next), current);
});
test("polling snapshots use the next reference when nested content changes", () => {
const current = {
profiles: [{ profileId: "zcode", state: "running" }]
};
const next = {
profiles: [{ profileId: "zcode", state: "stopped" }]
};
assert.equal(preserveEqualPollingSnapshot(current, next), next);
});
test("polling snapshots treat array order as meaningful", () => {
const current = { targetHosts: ["api.openai.com", "chatgpt.com"] };
const next = { targetHosts: ["chatgpt.com", "api.openai.com"] };
assert.equal(preserveEqualPollingSnapshot(current, next), next);
});