/* 接口测试脚本说明: 该文件对应 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'); }); });