import request from 'supertest'; import express from 'express'; import routes from '../../../src/routes'; // 模拟服务 jest.mock('../../../src/services/verification/verification-code.service'); jest.mock('../../../src/config/redis'); describe('认证API集成测试', () => { let app: express.Application; beforeAll(() => { // 创建Express应用 app = express(); // 中间件 app.use(express.json()); app.use(express.urlencoded({ extended: true })); // API路由 app.use('/api/v1', routes); }); describe('用户认证路由', () => { it('POST /api/v1/auth/register 路由应该存在', async () => { const response = await request(app) .post('/api/v1/auth/register') .send({}) .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在 expect(response.status).toBe(400); }); it('POST /api/v1/auth/login 路由应该存在', async () => { const response = await request(app) .post('/api/v1/auth/login') .send({}) .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在 expect(response.status).toBe(400); }); it('POST /api/v1/auth/refresh-token 路由应该存在', async () => { const response = await request(app) .post('/api/v1/auth/refresh-token') .send({}) .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在 expect(response.status).toBe(401); }); }); describe('验证码路由', () => { it('POST /api/v1/verification/send-code 路由应该存在', async () => { const response = await request(app) .post('/api/v1/verification/send-code') .send({}) .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在 expect(response.status).toBe(400); }); it('POST /api/v1/verification/verify 路由应该存在', async () => { const response = await request(app) .post('/api/v1/verification/verify') .send({}) .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在 expect(response.status).toBe(400); }); }); describe('用户信息路由', () => { it('GET /api/v1/users/profile 路由应该存在', async () => { const response = await request(app) .get('/api/v1/users/profile') .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在 expect(response.status).toBe(401); }); it('PUT /api/v1/users/profile 路由应该存在', async () => { const response = await request(app) .put('/api/v1/users/profile') .send({}) .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在 expect(response.status).toBe(401); }); it('DELETE /api/v1/users/profile 路由应该存在', async () => { const response = await request(app) .delete('/api/v1/users/profile') .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在 expect(response.status).toBe(401); }); }); });