Rhys SullivanAdd scoped MCP toolkits0a7c6a84 months agoHistory
34 lines · 1.1 KB · TypeScript
RawDownload
import { describe, expect, it } from "@effect/vitest"; import { matchPluginPage, matchPluginPagePath } from "./plugins.$pluginId.$"; describe("plugin page route matching", () => {  it("matches plugin roots", () => {    expect(matchPluginPagePath("/", "/")).toEqual({});    expect(matchPluginPagePath("/", "")).toEqual({});  });   it("matches static plugin subpages", () => {    expect(matchPluginPagePath("/settings", "/settings")).toEqual({});    expect(matchPluginPagePath("/settings", "/other")).toBeNull();  });   it("captures $params from plugin subpages", () => {    expect(matchPluginPagePath("/$toolkitSlug", "/deploy-tools")).toEqual({      toolkitSlug: "deploy-tools",    });  });   it("does not let parameter pages swallow deeper paths", () => {    expect(matchPluginPagePath("/$toolkitSlug", "/deploy-tools/rules")).toBeNull();  });   it("prefers static plugin pages over parameter pages", () => {    const match = matchPluginPage([{ path: "/$id" }, { path: "/settings" }], "/settings");     expect(match).toEqual({      page: { path: "/settings" },      params: {},    });  });});