Skip to content

Playwright

Directory structure

Mocks

The directory structure for mocks should match the structure of the URL they are mocking.

For example, if we were to mock the URL /api/config/account-user/, the correct path for the mock would be /playwright/api/config/account-user.ts

If the URL to be mocked includes parameters /api/account/0, the parameters do not have to be represented in the directory structure. In this case the mock file would be /playwright/mocks/api/account.js and may export a method such as mockGetAccountById().

Bad

# /api/config/accounts/users
/playwright/mocks/api/config/account-user.ts

Good

# /api/config/account-user/
/playwright/mocks/api/config/account-user.ts

# /api/client/integrations/facebook/fetch-accounts/1/
/playwright/mocks/api/client/integrations/facebook/fetch-accounts.ts

# /api/report/report-page-speed/
/playwright/mocks/api/report/report-page-speed.ts

Tests

All actual tests, i.e. the ones that use the Playwright test() method should live in the /playwright/tests/ directory.

If the Playwright test is for a page on the CUBED dashboard, it should be live the pages subdirectory (i.e. /playwright/tests/pages).

The directory structure for these tests should match the URL being tested. The account token (e.g. c-a-client-uk) can be omitted from the directory structure if it exists.

For example, if you were to test the URL /c-a-client-uk/reports/dashboard, the correct path for the test would be /playwright/tests/pages/reports/dashboard.spec.ts

The .spec.ts suffix is required to be discovered by Playwright.

Bad

# BAD: Account token included
/playwright/tests/pages/c-a-client-uk/reports/dashboard.spec.ts

# BAD: Missing `.spec.ts` suffix
/playwright/tests/pages/reports/dashboard.ts

# BAD: Not in `pages` subdirectory
/playwright/tests/reports/dashboard.ts

Good

/playwright/tests/pages/reports/dashboard.spec.ts