integration-test-db.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import { DataSource } from 'typeorm';
  2. import { UserEntity } from '../../src/entities/user.entity';
  3. import { Role } from '../../src/entities/role.entity';
  4. /**
  5. * 测试数据工厂类
  6. */
  7. export class TestDataFactory {
  8. /**
  9. * 创建测试用户数据
  10. */
  11. static createUserData(overrides: Partial<UserEntity> = {}): Partial<UserEntity> {
  12. const timestamp = Date.now();
  13. return {
  14. username: `testuser_${timestamp}`,
  15. password: 'TestPassword123!',
  16. email: `test_${timestamp}@example.com`,
  17. phone: `138${timestamp.toString().slice(-8)}`,
  18. nickname: `Test User ${timestamp}`,
  19. name: `Test Name ${timestamp}`,
  20. isDisabled: 0,
  21. isDeleted: 0,
  22. ...overrides
  23. };
  24. }
  25. /**
  26. * 创建测试角色数据
  27. */
  28. static createRoleData(overrides: Partial<Role> = {}): Partial<Role> {
  29. const timestamp = Date.now();
  30. return {
  31. name: `test_role_${timestamp}`,
  32. description: `Test role description ${timestamp}`,
  33. ...overrides
  34. };
  35. }
  36. /**
  37. * 在数据库中创建测试用户
  38. */
  39. static async createTestUser(dataSource: DataSource, overrides: Partial<UserEntity> = {}): Promise<UserEntity> {
  40. const userData = this.createUserData(overrides);
  41. const userRepository = dataSource.getRepository(UserEntity);
  42. const user = userRepository.create(userData);
  43. return await userRepository.save(user);
  44. }
  45. /**
  46. * 在数据库中创建测试角色
  47. */
  48. static async createTestRole(dataSource: DataSource, overrides: Partial<Role> = {}): Promise<Role> {
  49. const roleData = this.createRoleData(overrides);
  50. const roleRepository = dataSource.getRepository(Role);
  51. const role = roleRepository.create(roleData);
  52. return await roleRepository.save(role);
  53. }
  54. }