Ship a workspace prompt library with seeded defaults, restore-missing defaults, and a /ai-prompts management page. The AI assistant now uses the same prompt text as the library, while keeping freeform custom instructions and a compact one-row action UI. Also prevent local wrangler migration rewrites from stripping unauthenticated local access.
27 lines
1.1 KiB
JavaScript
27 lines
1.1 KiB
JavaScript
import { describe, expect, test } from "bun:test";
|
|
import { resolveWorkspaceRoute } from "./useWorkspaceRoute.ts";
|
|
|
|
describe("workspace route resolution", () => {
|
|
test("recognizes the workspace destinations", () => {
|
|
expect(resolveWorkspaceRoute("/", "")).toMatchObject({
|
|
isTrash: false,
|
|
isSettings: false,
|
|
isTemplates: false,
|
|
isAiPrompts: false,
|
|
});
|
|
expect(resolveWorkspaceRoute("/", "?view=trash").isTrash).toBe(true);
|
|
expect(resolveWorkspaceRoute("/settings", "").isSettings).toBe(true);
|
|
expect(resolveWorkspaceRoute("/templates", "").isTemplates).toBe(true);
|
|
expect(resolveWorkspaceRoute("/ai-prompts", "").isAiPrompts).toBe(true);
|
|
});
|
|
|
|
test("only treats the canonical trash query as trash", () => {
|
|
expect(resolveWorkspaceRoute("/", "?view=trash&extra=1").isTrash).toBe(false);
|
|
expect(resolveWorkspaceRoute("/other", "?view=trash").isTrash).toBe(false);
|
|
});
|
|
|
|
test("extracts a standalone mobile editor return id", () => {
|
|
expect(resolveWorkspaceRoute("/", "?mobileEditorReturn=memo-42").mobileEditorReturnMemoId).toBe("memo-42");
|
|
});
|
|
});
|