tests/integration/health.test.ts
Rama main · réplica de lectura del repositorio original.
import { beforeEach, describe, expect, it } from 'vitest'
import { buildServer } from '../../src/server.js'
import { getTestDb, truncateAll } from '../helpers/db.js'
const describeIfDb = process.env.TEST_DATABASE_URL ? describe : describe.skip
describeIfDb('health routes', () => {
const db = process.env.TEST_DATABASE_URL ? getTestDb() : undefined
beforeEach(async () => {
process.env.DATABASE_URL = process.env.TEST_DATABASE_URL
await truncateAll(db!)
})
it('GET /health responds without an auth header', async () => {
const app = await buildServer({ db })
const response = await app.inject({ method: 'GET', url: '/health' })
expect(response.statusCode).toBe(200)
expect(response.json()).toMatchObject({ status: 'ok' })
})
it('GET /ready responds without an auth header', async () => {
const app = await buildServer({ db })
const response = await app.inject({ method: 'GET', url: '/ready' })
expect(response.statusCode).toBe(200)
expect(response.json()).toMatchObject({ status: 'ok' })
})
it('GET /ready returns 503 when DB is unavailable', async () => {
const app = await buildServer({ db, skipBootSeed: true })
await db!.$pool.end()
const response = await app.inject({ method: 'GET', url: '/ready' })
expect(response.statusCode).toBe(503)
})
})