import { describe, expect, test } from "bun:test"; import { handleGoGet } from "./go-get"; const get = (path: string, method = "GET") => { const url = new URL(`https://gitfor.dev${path}`); return handleGoGet(new Request(url, { method }), url); }; describe("go get discovery", () => { test("maps the module root and subpackages to the repository's git URL", async () => { for (const path of ["/taigrr/gfd?go-get=1", "/taigrr/gfd/cmd/gfd?go-get=1", "/taigrr/gfd.git?go-get=1"]) { const body = await get(path)?.text(); expect(body).toContain( '', ); } }); test("ignores normal page loads, app routes and malformed paths", () => { expect(get("/taigrr/gfd")).toBeNull(); expect(get("/settings/tokens?go-get=1")).toBeNull(); expect(get("/taigrr?go-get=1")).toBeNull(); expect(get("/taigrr/%22%3E%3Cscript%3E?go-get=1")).toBeNull(); expect(get("/taigrr/gfd?go-get=1", "POST")).toBeNull(); }); }); describe("project-reserved owners", () => { test("the gitfor org's repositories resolve as Go modules", async () => { const body = await get("/gitfor/platform?go-get=1")?.text(); expect(body).toContain('content="gitfor.dev/gitfor/platform git https://gitfor.dev/gitfor/platform.git"'); }); });