integration-test-db.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { DataSource } from 'typeorm';
  2. import { SystemConfigMt } from '../../src/entities/system-config.entity.mt';
  3. import { UserEntityMt } from '@d8d/core-module-mt/user-module-mt';
  4. /**
  5. * 测试数据工厂类
  6. */
  7. export class TestDataFactory {
  8. /**
  9. * 创建测试系统配置数据
  10. */
  11. static createSystemConfigData(overrides: Partial<SystemConfigMt> = {}): Partial<SystemConfigMt> {
  12. const timestamp = Date.now();
  13. return {
  14. configKey: `app.test.config.${timestamp}`,
  15. configValue: 'true',
  16. description: `Test system config ${timestamp}`,
  17. tenantId: 1, // 为多租户系统配置设置默认租户ID
  18. ...overrides
  19. };
  20. }
  21. /**
  22. * 创建测试用户数据
  23. */
  24. static createUserData(overrides: Partial<UserEntityMt> = {}): Partial<UserEntityMt> {
  25. const timestamp = Date.now();
  26. return {
  27. username: `testuser_${timestamp}`,
  28. password: 'TestPassword123!',
  29. email: `test_${timestamp}@example.com`,
  30. phone: `138${timestamp.toString().slice(-8)}`,
  31. nickname: `Test User ${timestamp}`,
  32. name: `Test Name ${timestamp}`,
  33. isDisabled: 0,
  34. isDeleted: 0,
  35. tenantId: 1, // 为多租户用户设置默认租户ID
  36. ...overrides
  37. };
  38. }
  39. /**
  40. * 在数据库中创建测试系统配置
  41. */
  42. static async createTestSystemConfig(dataSource: DataSource, overrides: Partial<SystemConfigMt> = {}): Promise<SystemConfigMt> {
  43. const configData = this.createSystemConfigData(overrides);
  44. const systemConfigRepository = dataSource.getRepository(SystemConfigMt);
  45. const systemConfig = systemConfigRepository.create(configData);
  46. return await systemConfigRepository.save(systemConfig);
  47. }
  48. /**
  49. * 在数据库中创建测试用户
  50. */
  51. static async createTestUser(dataSource: DataSource, overrides: Partial<UserEntityMt> = {}): Promise<UserEntityMt> {
  52. const userData = this.createUserData(overrides);
  53. const userRepository = dataSource.getRepository(UserEntityMt);
  54. const user = userRepository.create(userData);
  55. return await userRepository.save(user);
  56. }
  57. }