Spaces:
Paused
Paused
| import request from 'supertest'; | |
| import express from 'express'; | |
| import healthRoutes from '../routes/health.js'; | |
| // 创建测试应用 | |
| const app = express(); | |
| app.use('/api', healthRoutes); | |
| describe('Health Routes', () => { | |
| describe('GET /api/health', () => { | |
| it('should return health status', async () => { | |
| const response = await request(app) | |
| .get('/api/health') | |
| .expect('Content-Type', /json/); | |
| expect(response.status).toBe(200); | |
| expect(response.body).toHaveProperty('status'); | |
| expect(response.body).toHaveProperty('timestamp'); | |
| expect(response.body).toHaveProperty('uptime'); | |
| expect(response.body).toHaveProperty('responseTime'); | |
| expect(response.body).toHaveProperty('services'); | |
| // 检查服务状态结构 | |
| expect(response.body.services).toHaveProperty('database'); | |
| expect(response.body.services).toHaveProperty('browser'); | |
| expect(response.body.services).toHaveProperty('storage'); | |
| }); | |
| it('should include memory information', async () => { | |
| const response = await request(app) | |
| .get('/api/health'); | |
| expect(response.body).toHaveProperty('memory'); | |
| expect(response.body.memory).toHaveProperty('used'); | |
| expect(response.body.memory).toHaveProperty('total'); | |
| expect(response.body.memory).toHaveProperty('system'); | |
| expect(typeof response.body.memory.used).toBe('number'); | |
| expect(typeof response.body.memory.total).toBe('number'); | |
| expect(typeof response.body.memory.system).toBe('number'); | |
| }); | |
| it('should include environment information', async () => { | |
| const response = await request(app) | |
| .get('/api/health'); | |
| expect(response.body).toHaveProperty('version'); | |
| expect(response.body).toHaveProperty('environment'); | |
| }); | |
| }); | |
| describe('GET /api/ping', () => { | |
| it('should return pong response', async () => { | |
| const response = await request(app) | |
| .get('/api/ping') | |
| .expect('Content-Type', /json/) | |
| .expect(200); | |
| expect(response.body).toHaveProperty('message', 'pong'); | |
| expect(response.body).toHaveProperty('timestamp'); | |
| // 验证时间戳格式 | |
| const timestamp = new Date(response.body.timestamp); | |
| expect(timestamp).toBeInstanceOf(Date); | |
| expect(timestamp.getTime()).not.toBeNaN(); | |
| }); | |
| }); | |
| }); |