import { initDatabase } from "@devpulse/database"; import { describe, expect, it } from "vitest"; import { buildServer } from "./server.js"; describe("Fastify API Server Endpoints", () => { it("responds to /health with system info", async () => { await initDatabase(); const server = buildServer(); const response = await server.inject({ method: "GET", url: "/health", }); expect(response.statusCode).toBe(200); const body = JSON.parse(response.body); expect(body.status).toBe("healthy"); expect(body.service).toBe("DevPulse API"); expect(body.memory).toBeDefined(); }); it("responds to /ready with dependency statuses", async () => { const server = buildServer(); const response = await server.inject({ method: "GET", url: "/ready", }); expect(response.statusCode).toBe(200); const body = JSON.parse(response.body); expect(body.status).toBe("ready"); expect(body.database).toBe("connected"); }); it("responds to /metrics with stats", async () => { const server = buildServer(); const response = await server.inject({ method: "GET", url: "/metrics", }); expect(response.statusCode).toBe(200); const body = JSON.parse(response.body); expect(typeof body.serversCount).toBe("number"); expect(typeof body.repositoriesTracked).toBe("number"); }); });