integration-test-db.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { DataSource } from 'typeorm';
  2. import { UserEntityMt } from '../../src/entities/user.entity.mt';
  3. import { RoleMt } from '../../src/entities/role.entity.mt';
  4. /**
  5. * 测试数据工厂类
  6. */
  7. export class TestDataFactory {
  8. /**
  9. * 创建测试用户数据
  10. */
  11. static createUserData(overrides: Partial<UserEntityMt> = {}): Partial<UserEntityMt> {
  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. tenantId: 1,
  21. isDisabled: 0,
  22. isDeleted: 0,
  23. ...overrides
  24. };
  25. }
  26. /**
  27. * 创建测试角色数据
  28. */
  29. static createRoleData(overrides: Partial<RoleMt> = {}): Partial<RoleMt> {
  30. const timestamp = Date.now();
  31. return {
  32. name: `test_role_${timestamp}`,
  33. description: `Test role description ${timestamp}`,
  34. ...overrides
  35. };
  36. }
  37. /**
  38. * 在数据库中创建测试用户
  39. */
  40. static async createTestUser(dataSource: DataSource, overrides: Partial<UserEntityMt> = {}): Promise<UserEntityMt> {
  41. const userData = this.createUserData(overrides);
  42. const userRepository = dataSource.getRepository(UserEntityMt);
  43. const user = userRepository.create(userData);
  44. return await userRepository.save(user);
  45. }
  46. /**
  47. * 在数据库中创建测试角色
  48. */
  49. static async createTestRole(dataSource: DataSource, overrides: Partial<RoleMt> = {}): Promise<RoleMt> {
  50. const roleData = this.createRoleData(overrides);
  51. const roleRepository = dataSource.getRepository(RoleMt);
  52. const role = roleRepository.create(roleData);
  53. return await roleRepository.save(role);
  54. }
  55. }