69 lines
2.9 KiB
TypeScript
69 lines
2.9 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|||
|
|
|
||
|
|
vi.mock("@/lib/convex/enabled", () => ({
|
||
|
|
isConvexEnabled: vi.fn(() => true),
|
||
|
|
}));
|
||
|
|
|
||
|
|
vi.mock("@/lib/documents/page-command-adapter", () => ({
|
||
|
|
executeDocumentCreateChildBridgeCommand: vi.fn(async () => new Response(JSON.stringify({ ok: true }))),
|
||
|
|
executeDocumentEmbedBridgeCommand: vi.fn(async () => new Response(JSON.stringify({ ok: true }))),
|
||
|
|
executeDocumentTemplateBridgeCommand: vi.fn(async () => new Response(JSON.stringify({ ok: true }))),
|
||
|
|
executeDocumentEmptyTrashBridgeCommand: vi.fn(async () => new Response(JSON.stringify({ ok: true }))),
|
||
|
|
executeDocumentPurgeBridgeCommand: vi.fn(async () => new Response(JSON.stringify({ ok: true }))),
|
||
|
|
}));
|
||
|
|
|
||
|
|
import { POST as postCreateChild } from "@/app/api/documents/create-child/route";
|
||
|
|
import { POST as postEmbed } from "@/app/api/documents/embed/route";
|
||
|
|
import { POST as postTemplate } from "@/app/api/documents/template/route";
|
||
|
|
import { POST as postEmptyTrash } from "@/app/api/documents/empty-trash/route";
|
||
|
|
import { POST as postPurge } from "@/app/api/documents/purge/route";
|
||
|
|
import {
|
||
|
|
executeDocumentCreateChildBridgeCommand,
|
||
|
|
executeDocumentEmbedBridgeCommand,
|
||
|
|
executeDocumentTemplateBridgeCommand,
|
||
|
|
executeDocumentEmptyTrashBridgeCommand,
|
||
|
|
executeDocumentPurgeBridgeCommand,
|
||
|
|
} from "@/lib/documents/page-command-adapter";
|
||
|
|
|
||
|
|
describe("documents route adapters", () => {
|
||
|
|
it("creates child route delegates to unified adapter", async () => {
|
||
|
|
await postCreateChild(new Request("http://localhost/api/documents/create-child", {
|
||
|
|
method: "POST",
|
||
|
|
body: JSON.stringify({ parentId: null }),
|
||
|
|
}));
|
||
|
|
expect(executeDocumentCreateChildBridgeCommand).toHaveBeenCalled();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("embed route delegates to unified adapter", async () => {
|
||
|
|
await postEmbed(new Request("http://localhost/api/documents/embed", {
|
||
|
|
method: "POST",
|
||
|
|
body: JSON.stringify({ sourceId: "doc_1", targetId: "doc_2" }),
|
||
|
|
}));
|
||
|
|
expect(executeDocumentEmbedBridgeCommand).toHaveBeenCalled();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("template route delegates to unified adapter", async () => {
|
||
|
|
await postTemplate(new Request("http://localhost/api/documents/template", {
|
||
|
|
method: "POST",
|
||
|
|
body: JSON.stringify({ documentId: "doc_1", isTemplate: true }),
|
||
|
|
}));
|
||
|
|
expect(executeDocumentTemplateBridgeCommand).toHaveBeenCalled();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("empty trash route delegates to unified adapter", async () => {
|
||
|
|
await postEmptyTrash(new Request("http://localhost/api/documents/empty-trash", {
|
||
|
|
method: "POST",
|
||
|
|
body: JSON.stringify({ workspaceId: "ws_1" }),
|
||
|
|
}));
|
||
|
|
expect(executeDocumentEmptyTrashBridgeCommand).toHaveBeenCalled();
|
||
|
|
});
|
||
|
|
|
||
|
|
it("purge route delegates to unified adapter", async () => {
|
||
|
|
await postPurge(new Request("http://localhost/api/documents/purge", {
|
||
|
|
method: "POST",
|
||
|
|
body: JSON.stringify({ documentId: "doc_1" }),
|
||
|
|
}));
|
||
|
|
expect(executeDocumentPurgeBridgeCommand).toHaveBeenCalled();
|
||
|
|
});
|
||
|
|
});
|