Files
HexaHost-GameCloud/apps/api/test/health.test.js
smueller 4fe25e6ec3
Some checks failed
CI / Node — lint, typecheck, test, build (push) Failing after 9s
CI / Go — node-agent tests (push) Failing after 22s
CI / Go — edge-gateway build (push) Successful in 13s
Phase0
2026-06-26 11:12:51 +02:00

39 lines
1.1 KiB
JavaScript

import { describe, it } from "node:test";
import assert from "node:assert/strict";
import http from "node:http";
describe("api health contract", () => {
it("returns ok for liveness-style health response", async () => {
const server = http.createServer((req, res) => {
if (req.url === "/api/v1/health/live") {
res.writeHead(200, { "Content-Type": "application/json" });
res.end(
JSON.stringify({
status: "ok",
service: "api",
timestamp: new Date().toISOString(),
}),
);
return;
}
res.writeHead(404);
res.end();
});
await new Promise((resolve) => server.listen(0, resolve));
const addr = server.address();
assert.ok(addr && typeof addr === "object");
const port = addr.port;
const response = await fetch(`http://127.0.0.1:${port}/api/v1/health/live`);
assert.equal(response.status, 200);
const body = await response.json();
assert.equal(body.status, "ok");
assert.equal(body.service, "api");
await new Promise((resolve, reject) =>
server.close((err) => (err ? reject(err) : resolve())),
);
});
});