diff options
| author | Marcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de> | 2023-06-16 06:19:48 +0000 |
|---|---|---|
| committer | Marcus Eibrink-Lunzenauer <lunzenauer@elan-ev.de> | 2023-06-16 06:19:48 +0000 |
| commit | 91bd2c3e86f5fdaa5740ca536909ccd12f44b10e (patch) | |
| tree | 9646026525934c02521b26b4de66f816c54b202b /playwright.config.ts | |
| parent | 94abf115a32671423c2ea0a8e37c83cecf1ff6e6 (diff) | |
Add playwright tests, refs #2635
Merge request studip/studip!1790
Diffstat (limited to 'playwright.config.ts')
| -rw-r--r-- | playwright.config.ts | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/playwright.config.ts b/playwright.config.ts new file mode 100644 index 0000000..f83b078 --- /dev/null +++ b/playwright.config.ts @@ -0,0 +1,87 @@ +import { defineConfig, devices } from '@playwright/test'; +import dotenv from 'dotenv'; +import path from 'path'; + + +// Read from default ".env" file. +dotenv.config(); + +/** + * See https://playwright.dev/docs/test-configuration. + */ +export default defineConfig({ + testDir: path.resolve(__dirname, 'tests', 'e2e'), + outputDir: path.resolve(__dirname, 'tests', 'e2e', 'test-results'), + /* Run tests in files in parallel */ + fullyParallel: true, + /* Fail the build on CI if you accidentally left test.only in the source code. */ + forbidOnly: !!process.env.CI, + /* Retry on CI only */ + retries: process.env.CI ? 3 : 0, + /* Opt out of parallel tests on CI. */ + workers: process.env.CI ? 1 : undefined, + /* Reporter to use. See https://playwright.dev/docs/test-reporters */ + reporter: 'html', + /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ + use: { + /* Base URL to use in actions like `await page.goto('/')`. */ + baseURL: process.env.PLAYWRIGHT_BASE_URL ?? 'http://127.0.0.1', + + locale: process.env.PLAYWRIGHT_LOCALE ?? 'de_DE', + + /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ + trace: 'on-first-retry', + + actionTimeout: 10 * 1000, + navigationTimeout: 30 * 1000, + + launchOptions: { + slowMo: process.env.PLAYWRIGHT_TEST_SPEED ?? 50, + }, + }, + expect: { + timeout: 10 * 1000, + }, + + /* Configure projects for major browsers */ + projects: [ + + { name: 'setup', testMatch: /.*\.setup\.ts/ }, + + // { + // name: 'chromium', + // use: { ...devices['Desktop Chrome'] }, + // }, + + { + name: 'firefox', + use: { ...devices['Desktop Firefox'] }, + dependencies: ['setup'], + }, + + // { + // name: 'webkit', + // use: { ...devices['Desktop Safari'] }, + // }, + + /* Test against mobile viewports. */ + // { + // name: 'Mobile Chrome', + // use: { ...devices['Pixel 5'] }, + // }, + // { + // name: 'Mobile Safari', + // use: { ...devices['iPhone 12'] }, + // }, + + /* Test against branded browsers. */ + // { + // name: 'Microsoft Edge', + // use: { ...devices['Desktop Edge'], channel: 'msedge' }, + // }, + // { + // name: 'Google Chrome', + // use: { ..devices['Desktop Chrome'], channel: 'chrome' }, + // }, + ], +}); |
