46 lines · 1.7 KB · TypeScript
RawDownload
import { EnvironmentId, ThreadId } from "@t3tools/contracts";import { describe, expect, it } from "vite-plus/test"; import { isCurrentPreviewRuntimeTab, previewRuntimeTabId } from "./previewRuntimeTabId"; describe("previewRuntimeTabId", () => {  it("scopes process-local tab ids to their environment, thread, and server epoch", () => {    const base = {      environmentId: EnvironmentId.make("environment-a"),      threadId: ThreadId.make("thread-a"),    };     expect(previewRuntimeTabId(base, "epoch-a", "tab_1")).not.toBe(      previewRuntimeTabId(        { ...base, environmentId: EnvironmentId.make("environment-b") },        "epoch-a",        "tab_1",      ),    );    expect(previewRuntimeTabId(base, "epoch-a", "tab_1")).not.toBe(      previewRuntimeTabId({ ...base, threadId: ThreadId.make("thread-b") }, "epoch-a", "tab_1"),    );    expect(previewRuntimeTabId(base, "epoch-a", "tab_1")).not.toBe(      previewRuntimeTabId(base, "epoch-b", "tab_1"),    );  });   it("is stable for the same runtime tab", () => {    const ref = {      environmentId: EnvironmentId.make("environment-a"),      threadId: ThreadId.make("thread-a"),    };    expect(previewRuntimeTabId(ref, null, "tab_1")).toBe(previewRuntimeTabId(ref, null, "tab_1"));  });   it("rejects a pinned operation target after the server epoch changes", () => {    const ref = {      environmentId: EnvironmentId.make("environment-a"),      threadId: ThreadId.make("thread-a"),    };    const runtimeTabId = previewRuntimeTabId(ref, "epoch-a", "tab_1");     expect(isCurrentPreviewRuntimeTab(ref, "epoch-a", "tab_1", runtimeTabId)).toBe(true);    expect(isCurrentPreviewRuntimeTab(ref, "epoch-b", "tab_1", runtimeTabId)).toBe(false);  });});