auth.test.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import request from 'supertest';
  2. import express from 'express';
  3. import routes from '../../../src/routes';
  4. // 模拟服务
  5. jest.mock('../../../src/services/verification/verification-code.service');
  6. jest.mock('../../../src/config/redis');
  7. describe('认证API集成测试', () => {
  8. let app: express.Application;
  9. beforeAll(() => {
  10. // 创建Express应用
  11. app = express();
  12. // 中间件
  13. app.use(express.json());
  14. app.use(express.urlencoded({ extended: true }));
  15. // API路由
  16. app.use('/api/v1', routes);
  17. });
  18. describe('用户认证路由', () => {
  19. it('POST /api/v1/auth/register 路由应该存在', async () => {
  20. const response = await request(app)
  21. .post('/api/v1/auth/register')
  22. .send({})
  23. .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在
  24. expect(response.status).toBe(400);
  25. });
  26. it('POST /api/v1/auth/login 路由应该存在', async () => {
  27. const response = await request(app)
  28. .post('/api/v1/auth/login')
  29. .send({})
  30. .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在
  31. expect(response.status).toBe(400);
  32. });
  33. it('POST /api/v1/auth/refresh-token 路由应该存在', async () => {
  34. const response = await request(app)
  35. .post('/api/v1/auth/refresh-token')
  36. .send({})
  37. .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在
  38. expect(response.status).toBe(401);
  39. });
  40. });
  41. describe('验证码路由', () => {
  42. it('POST /api/v1/verification/send-code 路由应该存在', async () => {
  43. const response = await request(app)
  44. .post('/api/v1/verification/send-code')
  45. .send({})
  46. .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在
  47. expect(response.status).toBe(400);
  48. });
  49. it('POST /api/v1/verification/verify 路由应该存在', async () => {
  50. const response = await request(app)
  51. .post('/api/v1/verification/verify')
  52. .send({})
  53. .expect(400); // 期望400错误,因为缺少必填字段,但路由应该存在
  54. expect(response.status).toBe(400);
  55. });
  56. });
  57. describe('用户信息路由', () => {
  58. it('GET /api/v1/users/profile 路由应该存在', async () => {
  59. const response = await request(app)
  60. .get('/api/v1/users/profile')
  61. .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在
  62. expect(response.status).toBe(401);
  63. });
  64. it('PUT /api/v1/users/profile 路由应该存在', async () => {
  65. const response = await request(app)
  66. .put('/api/v1/users/profile')
  67. .send({})
  68. .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在
  69. expect(response.status).toBe(401);
  70. });
  71. it('DELETE /api/v1/users/profile 路由应该存在', async () => {
  72. const response = await request(app)
  73. .delete('/api/v1/users/profile')
  74. .expect(401); // 期望401错误,因为缺少认证头,但路由应该存在
  75. expect(response.status).toBe(401);
  76. });
  77. });
  78. });