loop: baseline
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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();
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user