import { describe, expect, test } from "bun:test"; import { mkdirSync, mkdtempSync, writeFileSync } from "node:fs"; import { join } from "node:path"; import { buildRouter } from "../src/index.ts"; const root = join(import.meta.dir, ".tmp-services"); mkdirSync(root, { recursive: true }); describe("service discovery", () => { test("discovers source services and skips generated files", () => { const base = mkdtempSync(join(root, "app-")); const services = join(base, "app", "services"); mkdirSync(services, { recursive: true }); mkdirSync(join(base, "app", "pages"), { recursive: true }); writeFileSync(join(services, "billing.ts"), "export default {};"); writeFileSync(join(services, "types.gen.ts"), "export type T = string;"); expect(buildRouter(join(base, "app")).services.map((service) => service.name)).toEqual([ "billing", ]); }); });