Files
2026-10-15 10:09:34 +08:00

37 lines
1.1 KiB
TypeScript

import 'reflect-metadata';
import assert from 'node:assert/strict';
import { test } from 'node:test';
import { createApplication } from '../src/app.factory';
import { AppLogger } from '../src/logging/app-logger';
import { testConfig } from './test-config';
test('服务可以启动并通过带版本前缀的 HTTP 健康检查', async (context) => {
const app = await createApplication(
testConfig,
new AppLogger('error', () => {}),
);
context.after(async () => {
await app.close();
});
await app.listen(0, '127.0.0.1');
const origin = await app.getUrl();
const response = await fetch(`${origin}/api/v1/health`, {
signal: AbortSignal.timeout(5000),
});
assert.equal(response.status, 200);
assert.deepEqual(await response.json(), {
code: 0,
message: 'ok',
data: {
status: 'ok',
service: 'doodle-store-server',
},
});
const unversioned = await fetch(`${origin}/health`, {
signal: AbortSignal.timeout(5000),
});
assert.equal(unversioned.status, 404);
});