| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import { DataSource } from 'typeorm';
- import { AreaEntityMt, AreaLevel } from '../../src/modules/areas/area.entity.mt';
- /**
- * 测试数据工厂类 - 专门用于地区模块测试
- */
- export class TestDataFactory {
- /**
- * 创建测试区域数据
- */
- static createAreaData(overrides: Partial<AreaEntityMt> = {}): Partial<AreaEntityMt> {
- const timestamp = Date.now();
- return {
- name: `测试区域_${timestamp}`,
- code: `area_${timestamp}`,
- level: AreaLevel.PROVINCE,
- parentId: null,
- isDisabled: 0,
- isDeleted: 0,
- tenantId: 1, // 默认租户ID
- ...overrides
- };
- }
- /**
- * 在数据库中创建测试区域
- */
- static async createTestArea(dataSource: DataSource, overrides: Partial<AreaEntityMt> = {}): Promise<AreaEntityMt> {
- const areaData = this.createAreaData(overrides);
- const areaRepository = dataSource.getRepository(AreaEntityMt);
- // 对于顶级区域(省/直辖市),parentId应该为null
- if (areaData.level === AreaLevel.PROVINCE) {
- areaData.parentId = null;
- }
- // 对于市级区域,确保有对应的省级区域
- else if (areaData.level === AreaLevel.CITY && !areaData.parentId) {
- const province = await this.createTestArea(dataSource, { level: AreaLevel.PROVINCE });
- areaData.parentId = province.id;
- }
- // 对于区县级区域,确保有对应的市级区域
- else if (areaData.level === AreaLevel.DISTRICT && !areaData.parentId) {
- const city = await this.createTestArea(dataSource, { level: AreaLevel.CITY });
- areaData.parentId = city.id;
- }
- const area = areaRepository.create(areaData);
- return await areaRepository.save(area);
- }
- /**
- * 创建测试用户数据(用于认证测试)
- */
- static createUserData(overrides: any = {}): any {
- const timestamp = Date.now();
- return {
- id: Math.floor(Math.random() * 10000) + 1,
- username: `testuser_${timestamp}`,
- password: 'TestPassword123!',
- email: `test_${timestamp}@example.com`,
- phone: `138${timestamp.toString().slice(-8)}`,
- nickname: `Test User ${timestamp}`,
- name: `Test Name ${timestamp}`,
- isDisabled: 0,
- isDeleted: 0,
- tenantId: 1, // 添加租户ID
- ...overrides
- };
- }
- /**
- * 在数据库中创建测试用户(用于认证测试)
- */
- static async createTestUser(dataSource: DataSource, overrides: any = {}): Promise<any> {
- const userData = this.createUserData(overrides);
- // 导入 UserEntity
- const { UserEntityMt } = await import('@d8d/user-module-mt');
- const userRepository = dataSource.getRepository(UserEntityMt);
- const user = userRepository.create(userData);
- return await userRepository.save(user);
- }
- }
|