mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|||
|
|
import { buildToolRequestDiscussionUrl } from "@/lib/tool-request";
|
||
|
|
|
||
|
|
describe("buildToolRequestDiscussionUrl", () => {
|
||
|
|
it("targets the Ideas discussions category on the SnapOtter repo", () => {
|
||
|
|
const url = new URL(buildToolRequestDiscussionUrl("convert to dicom"));
|
||
|
|
expect(`${url.origin}${url.pathname}`).toBe(
|
||
|
|
"https://github.com/snapotter-hq/snapotter/discussions/new",
|
||
|
|
);
|
||
|
|
expect(url.searchParams.get("category")).toBe("ideas");
|
||
|
|
});
|
||
|
|
|
||
|
|
it("embeds the query in the title and body", () => {
|
||
|
|
const url = new URL(buildToolRequestDiscussionUrl("convert to dicom"));
|
||
|
|
expect(url.searchParams.get("title")).toContain("convert to dicom");
|
||
|
|
expect(url.searchParams.get("body")).toContain("convert to dicom");
|
||
|
|
});
|
||
|
|
|
||
|
|
it("clamps an over-long query to 200 characters", () => {
|
||
|
|
const url = new URL(buildToolRequestDiscussionUrl("a".repeat(500)));
|
||
|
|
expect(url.searchParams.get("title")).toBe(`Tool request: ${"a".repeat(200)}`);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("collapses newlines in the query", () => {
|
||
|
|
const url = new URL(buildToolRequestDiscussionUrl("line one\nline two"));
|
||
|
|
expect(url.searchParams.get("title")).toBe("Tool request: line one line two");
|
||
|
|
});
|
||
|
|
});
|