37 lines
996 B
JavaScript
37 lines
996 B
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
const http = require('node:http');
|
|
const { createApp } = require('../../src/app');
|
|
|
|
function startServer(app) {
|
|
return new Promise((resolve) => {
|
|
const server = app.listen(0, () => {
|
|
const port = server.address().port;
|
|
resolve({ server, port });
|
|
});
|
|
});
|
|
}
|
|
|
|
test('GET /api/health returns { ok: true }', async () => {
|
|
const app = createApp();
|
|
const { server, port } = await startServer(app);
|
|
|
|
try {
|
|
const result = await new Promise((resolve, reject) => {
|
|
http.get(`http://localhost:${port}/api/health`, (res) => {
|
|
let data = '';
|
|
res.on('data', (chunk) => { data += chunk; });
|
|
res.on('end', () => {
|
|
resolve({ status: res.statusCode, body: JSON.parse(data) });
|
|
});
|
|
res.on('error', reject);
|
|
});
|
|
});
|
|
|
|
assert.equal(result.status, 200);
|
|
assert.equal(result.body.ok, true);
|
|
} finally {
|
|
server.close();
|
|
}
|
|
});
|