Files
BrowserSkill/apps/extension/src/entrypoints/popup/use-connection-state.test.ts
T
2026-06-22 17:36:26 +08:00

41 lines
1.6 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { resolvePopupDisplayState, resolvePopupStatusState } from "./use-connection-state";
describe("resolvePopupDisplayState", () => {
it("returns wire state when not connecting", () => {
expect(resolvePopupDisplayState("connected", "disconnected")).toBe("connected");
expect(resolvePopupDisplayState("disconnected", "connected")).toBe("disconnected");
expect(resolvePopupDisplayState("version_skew", "connected")).toBe("version_skew");
});
it("holds last stable state while connecting", () => {
expect(resolvePopupDisplayState("connecting", "connected")).toBe("connected");
expect(resolvePopupDisplayState("connecting", "disconnected")).toBe("disconnected");
expect(resolvePopupDisplayState("connecting", "version_skew")).toBe("version_skew");
});
it("falls back to disconnected when no stable state yet", () => {
expect(resolvePopupDisplayState("connecting", "connecting")).toBe("disconnected");
});
});
describe("resolvePopupStatusState", () => {
it("returns disabled when connection is turned off", () => {
expect(
resolvePopupStatusState({ connectionEnabled: false, state: "connected" }, "connected"),
).toBe("disabled");
});
it("returns version_skew when enabled and wire state is version_skew", () => {
expect(
resolvePopupStatusState({ connectionEnabled: true, state: "version_skew" }, "connected"),
).toBe("version_skew");
});
it("returns display state when enabled and not version_skew", () => {
expect(
resolvePopupStatusState({ connectionEnabled: true, state: "connected" }, "connected"),
).toBe("connected");
});
});