test-setup.ts 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. const __filename = fileURLToPath(import.meta.url);
  13. const __dirname = dirname(__filename);
  14. const testUsers = JSON.parse(readFileSync(join(__dirname, '../fixtures/test-users.json'), 'utf-8'));
  15. type Fixtures = {
  16. adminLoginPage: AdminLoginPage;
  17. dashboardPage: DashboardPage;
  18. userManagementPage: UserManagementPage;
  19. disabilityPersonPage: DisabilityPersonManagementPage;
  20. regionManagementPage: RegionManagementPage;
  21. orderManagementPage: OrderManagementPage;
  22. platformManagementPage: PlatformManagementPage;
  23. testUsers: typeof testUsers;
  24. };
  25. export const test = base.extend<Fixtures>({
  26. adminLoginPage: async ({ page }, use) => {
  27. await use(new AdminLoginPage(page));
  28. },
  29. dashboardPage: async ({ page }, use) => {
  30. await use(new DashboardPage(page));
  31. },
  32. userManagementPage: async ({ page }, use) => {
  33. await use(new UserManagementPage(page));
  34. },
  35. disabilityPersonPage: async ({ page }, use) => {
  36. await use(new DisabilityPersonManagementPage(page));
  37. },
  38. regionManagementPage: async ({ page }, use) => {
  39. await use(new RegionManagementPage(page));
  40. },
  41. orderManagementPage: async ({ page }, use) => {
  42. await use(new OrderManagementPage(page));
  43. },
  44. platformManagementPage: async ({ page }, use) => {
  45. await use(new PlatformManagementPage(page));
  46. },
  47. testUsers: async ({}, use) => {
  48. await use(testUsers);
  49. },
  50. });
  51. export { expect } from '@playwright/test';