test-setup.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import { test as base } from '@playwright/test';
  2. import { readFileSync } from 'fs';
  3. import { join, dirname } from 'path';
  4. import { fileURLToPath } from 'url';
  5. import { AdminLoginPage } from '../pages/admin/login.page';
  6. import { DashboardPage } from '../pages/admin/dashboard.page';
  7. import { UserManagementPage } from '../pages/admin/user-management.page';
  8. import { DisabilityPersonManagementPage } from '../pages/admin/disability-person.page';
  9. import { RegionManagementPage } from '../pages/admin/region-management.page';
  10. import { OrderManagementPage } from '../pages/admin/order-management.page';
  11. import { PlatformManagementPage } from '../pages/admin/platform-management.page';
  12. import { CompanyManagementPage } from '../pages/admin/company-management.page';
  13. const __filename = fileURLToPath(import.meta.url);
  14. const __dirname = dirname(__filename);
  15. const testUsers = JSON.parse(readFileSync(join(__dirname, '../fixtures/test-users.json'), 'utf-8'));
  16. type Fixtures = {
  17. adminLoginPage: AdminLoginPage;
  18. dashboardPage: DashboardPage;
  19. userManagementPage: UserManagementPage;
  20. disabilityPersonPage: DisabilityPersonManagementPage;
  21. regionManagementPage: RegionManagementPage;
  22. orderManagementPage: OrderManagementPage;
  23. platformManagementPage: PlatformManagementPage;
  24. companyManagementPage: CompanyManagementPage;
  25. testUsers: typeof testUsers;
  26. };
  27. export const test = base.extend<Fixtures>({
  28. adminLoginPage: async ({ page }, use) => {
  29. await use(new AdminLoginPage(page));
  30. },
  31. dashboardPage: async ({ page }, use) => {
  32. await use(new DashboardPage(page));
  33. },
  34. userManagementPage: async ({ page }, use) => {
  35. await use(new UserManagementPage(page));
  36. },
  37. disabilityPersonPage: async ({ page }, use) => {
  38. await use(new DisabilityPersonManagementPage(page));
  39. },
  40. regionManagementPage: async ({ page }, use) => {
  41. await use(new RegionManagementPage(page));
  42. },
  43. orderManagementPage: async ({ page }, use) => {
  44. await use(new OrderManagementPage(page));
  45. },
  46. platformManagementPage: async ({ page }, use) => {
  47. await use(new PlatformManagementPage(page));
  48. },
  49. companyManagementPage: async ({ page }, use) => {
  50. await use(new CompanyManagementPage(page));
  51. },
  52. testUsers: async ({}, use) => {
  53. await use(testUsers);
  54. },
  55. });
  56. // 在所有测试前设置测试模式标志
  57. test.beforeEach(async ({ page }) => {
  58. await page.addInitScript(() => {
  59. (window as any).__PLAYWRIGHT_TEST__ = true;
  60. });
  61. });
  62. export { expect } from '@playwright/test';