67 lines · 1.7 KB · TypeScript
RawDownload
import { describe, expect, it } from "vitest";import { scopeThreadRef } from "@t3tools/client-runtime";import { ThreadId } from "@t3tools/contracts";import { DraftId } from "./composerDraftStore"; import {  buildDraftThreadRouteParams,  buildThreadRouteParams,  resolveThreadRouteRef,  resolveThreadRouteTarget,} from "./threadRoutes"; describe("threadRoutes", () => {  it("builds canonical thread route params from a scoped ref", () => {    const ref = scopeThreadRef("env-1" as never, ThreadId.make("thread-1"));     expect(buildThreadRouteParams(ref)).toEqual({      environmentId: "env-1",      threadId: "thread-1",    });  });   it("resolves a scoped ref only when both params are present", () => {    expect(      resolveThreadRouteRef({        environmentId: "env-1",        threadId: "thread-1",      }),    ).toEqual({      environmentId: "env-1",      threadId: "thread-1",    });     expect(resolveThreadRouteRef({ environmentId: "env-1" })).toBeNull();    expect(resolveThreadRouteRef({ threadId: "thread-1" })).toBeNull();  });   it("builds canonical draft route params from a draft id", () => {    expect(buildDraftThreadRouteParams(DraftId.make("draft-1"))).toEqual({      draftId: "draft-1",    });  });   it("resolves draft and server route targets", () => {    expect(      resolveThreadRouteTarget({        environmentId: "env-1",        threadId: "thread-1",      }),    ).toEqual({      kind: "server",      threadRef: {        environmentId: "env-1",        threadId: "thread-1",      },    });     expect(      resolveThreadRouteTarget({        draftId: "draft-1",      }),    ).toEqual({      kind: "draft",      draftId: "draft-1",    });  });});