Przeglądaj źródła

✅ test(e2e): fix activity and route filter reset operations

- 修改活动管理筛选重置方式,通过点击筛选器并选择"全部类型"选项
- 修改路线管理筛选重置方式,通过点击筛选器并选择"全部车型"选项

✅ test(integration): update admin API route imports and activity type handling

- 更新活动管理API测试的路由导入方式,使用adminActivitiesRoutesExport
- 更新路线管理API测试的路由导入方式,使用adminRoutesRoutesExport
- 标准化活动类型定义,使用ActivityType枚举和显式类型断言

♻️ refactor(test): rename route seats property to seatCount

- 更新测试数据工厂中路线的座位属性名,从seats改为seatCount以保持一致性
yourname 4 miesięcy temu
rodzic
commit
5400f19ffd

+ 3 - 2
tests/e2e/specs/admin/activities.spec.ts

@@ -46,8 +46,9 @@ test.describe.serial('活动管理 E2E 测试', () => {
     const returnCount = await activityManagementPage.getActivityCount();
     expect(returnCount).toBeGreaterThan(0);
 
-    // 重置筛选
-    await activityManagementPage.filterByType('全部类型');
+    // 重置筛选 - 通过选择全部类型选项
+    await activityManagementPage.typeFilter.click();
+    await activityManagementPage.page.getByRole('option', { name: '全部类型' }).click();
     const allCount = await activityManagementPage.getActivityCount();
     expect(allCount).toBeGreaterThan(0);
   });

+ 3 - 2
tests/e2e/specs/admin/routes.spec.ts

@@ -51,8 +51,9 @@ test.describe.serial('路线管理 E2E 测试', () => {
     const carCount = await routeManagementPage.getRouteCount();
     expect(carCount).toBeGreaterThanOrEqual(0);
 
-    // 重置筛选
-    await routeManagementPage.filterByVehicleType('全部车型');
+    // 重置筛选 - 通过选择全部车型选项
+    await routeManagementPage.vehicleTypeFilter.click();
+    await routeManagementPage.page.getByRole('option', { name: '全部车型' }).click();
     const allCount = await routeManagementPage.getRouteCount();
     expect(allCount).toBeGreaterThan(0);
   });

+ 11 - 10
tests/integration/server/admin/activities.integration.test.ts

@@ -6,20 +6,21 @@ import {
   TestDataFactory
 } from '~/utils/server/integration-test-db';
 import { IntegrationTestAssertions } from '~/utils/server/integration-test-utils';
-import { activitiesRoutes } from '@/server/api/admin/activities';
+import { adminActivitiesRoutesExport } from '@/server/api';
 import { AuthService } from '@/server/modules/auth/auth.service';
+import { ActivityType } from '@/server/modules/activities/activity.entity';
 import { UserService } from '@/server/modules/users/user.service';
 
 // 设置集成测试钩子
 setupIntegrationDatabaseHooks()
 
 describe('活动管理API集成测试', () => {
-  let client: ReturnType<typeof testClient<typeof activitiesRoutes>>['api']['v1']['admin'];
+  let client: ReturnType<typeof testClient<typeof adminActivitiesRoutesExport>>['api']['v1']['admin'];
   let testToken: string;
 
   beforeEach(async () => {
     // 创建测试客户端
-    client = testClient(activitiesRoutes).api.v1.admin;
+    client = testClient(adminActivitiesRoutesExport).api.v1.admin;
 
     // 创建测试用户并生成token
     const dataSource = await IntegrationTestDatabase.getDataSource();
@@ -39,7 +40,7 @@ describe('活动管理API集成测试', () => {
       const activityData = {
         name: '测试去程活动',
         description: '这是一个测试去程活动',
-        type: 'departure' as const,
+        type: ActivityType.DEPARTURE,
         startDate: '2025-10-17T08:00:00.000Z',
         endDate: '2025-10-17T18:00:00.000Z'
       };
@@ -71,7 +72,7 @@ describe('活动管理API集成测试', () => {
       const activityData = {
         name: '测试返程活动',
         description: '这是一个测试返程活动',
-        type: 'return' as const,
+        type: ActivityType.RETURN,
         startDate: '2025-10-17T16:00:00.000Z',
         endDate: '2025-10-17T20:00:00.000Z'
       };
@@ -121,8 +122,8 @@ describe('活动管理API集成测试', () => {
       if (!dataSource) throw new Error('Database not initialized');
 
       // 创建几个测试活动
-      await TestDataFactory.createTestActivity(dataSource, { name: '活动1', type: 'departure' });
-      await TestDataFactory.createTestActivity(dataSource, { name: '活动2', type: 'return' });
+      await TestDataFactory.createTestActivity(dataSource, { name: '活动1', type: 'departure' as const });
+      await TestDataFactory.createTestActivity(dataSource, { name: '活动2', type: 'return' as const });
 
       const response = await client.activities.$get({
         query: {}
@@ -415,9 +416,9 @@ describe('活动管理API集成测试', () => {
       const dataSource = await IntegrationTestDatabase.getDataSource();
       if (!dataSource) throw new Error('Database not initialized');
 
-      await TestDataFactory.createTestActivity(dataSource, { name: '去程活动1', type: 'departure' });
-      await TestDataFactory.createTestActivity(dataSource, { name: '去程活动2', type: 'departure' });
-      await TestDataFactory.createTestActivity(dataSource, { name: '返程活动1', type: 'return' });
+      await TestDataFactory.createTestActivity(dataSource, { name: '去程活动1', type: 'departure' as const });
+      await TestDataFactory.createTestActivity(dataSource, { name: '去程活动2', type: 'departure' as const });
+      await TestDataFactory.createTestActivity(dataSource, { name: '返程活动1', type: 'return' as const });
 
       const response = await client.activities.$get({
         query: { filters: { type: 'departure' } }

+ 3 - 3
tests/integration/server/admin/routes.integration.test.ts

@@ -6,7 +6,7 @@ import {
   TestDataFactory
 } from '~/utils/server/integration-test-db';
 import { IntegrationTestAssertions } from '~/utils/server/integration-test-utils';
-import { routesRoutes } from '@/server/api/admin/routes';
+import { adminRoutesRoutesExport } from '@/server/api';
 import { AuthService } from '@/server/modules/auth/auth.service';
 import { UserService } from '@/server/modules/users/user.service';
 
@@ -14,12 +14,12 @@ import { UserService } from '@/server/modules/users/user.service';
 setupIntegrationDatabaseHooks()
 
 describe('路线管理API集成测试', () => {
-  let client: ReturnType<typeof testClient<typeof routesRoutes>>['api']['v1']['admin'];
+  let client: ReturnType<typeof testClient<typeof adminRoutesRoutesExport>>['api']['v1']['admin'];
   let testToken: string;
 
   beforeEach(async () => {
     // 创建测试客户端
-    client = testClient(routesRoutes).api.v1.admin;
+    client = testClient(adminRoutesRoutesExport).api.v1.admin;
 
     // 创建测试用户并生成token
     const dataSource = await IntegrationTestDatabase.getDataSource();

+ 1 - 1
tests/utils/server/integration-test-db.ts

@@ -121,7 +121,7 @@ export class TestDataFactory {
       departureTime: departureTime,
       vehicleType: 'bus',
       price: 100,
-      seats: 40,
+      seatCount: 40,
       isDisabled: 0,
       isDeleted: 0,
       ...overrides