| 123456789101112131415161718192021222324252627282930313233343536373839 |
- /*
- 接口测试脚本说明:
- 该文件对应 project/backend/tests/health.spec.ts 和 api-contract.spec.ts。
- 运行脚本 run_api_tests.ps1 会调用后端 Jest + Supertest 环境执行正式测试文件。
- */
- import request from 'supertest';
- import { app } from '../../project/backend/src/app';
- describe('api: service health and config contract', () => {
- it('returns service status', async () => {
- const response = await request(app).get('/api/health');
- expect(response.status).toBe(200);
- expect(response.body.status).toBe('ok');
- });
- it('returns public parse config shape', async () => {
- const response = await request(app).get('/api/config/parse');
- expect(response.status).toBe(200);
- expect(response.body).toEqual({
- appId: expect.any(String),
- jsKey: expect.any(String),
- serverUrl: expect.any(String)
- });
- });
- it('does not expose sensitive parse keys', async () => {
- const response = await request(app).get('/api/config/parse');
- expect(response.body.masterKey).toBeUndefined();
- expect(response.body.restApiKey).toBeUndefined();
- });
- it('returns 404 for unknown api route', async () => {
- const response = await request(app).get('/api/unknown-resource');
- expect(response.status).toBe(404);
- expect(response.body.code).toBe('NOT_FOUND');
- });
- });
|