/** * Health Endpoint Tests */ import { describe, it, expect, beforeAll, afterAll } from 'vitest'; import type { FastifyInstance } from 'fastify'; import { SqliteAdapter } from '../src/database/SqliteAdapter.js'; import { createServer } from '../src/server.js'; describe('Health Endpoint', () => { let app: FastifyInstance; let db: SqliteAdapter; beforeAll(async () => { db = new SqliteAdapter(':memory:'); await db.init(); app = await createServer({ db, port: 0 }); await app.ready(); }); afterAll(async () => { await app.close(); db.close(); }); it('GET /api/health should return ok status', async () => { const response = await app.inject({ method: 'GET', url: '/api/health', }); expect(response.statusCode).toBe(200); const body = JSON.parse(response.body); expect(body.status).toBe('ok'); expect(body.timestamp).toBeDefined(); }); it('GET /api/health should return valid ISO timestamp', async () => { const response = await app.inject({ method: 'GET', url: '/api/health', }); const body = JSON.parse(response.body); const date = new Date(body.timestamp); expect(date.toString()).not.toBe('Invalid Date'); }); });