Repository navigation
Expand file tree
/
Copy pathplaywright.config.ts
More file actions
100 lines (78 loc) · 2.92 KB
/
Copy pathplaywright.config.ts
File metadata and controls
100 lines (78 loc) · 2.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/**
* External dependencies
*/
import { defineConfig, devices } from '@playwright/test';
/**
* Env variables + static paths
*/
const { BASE_URL, CI, TIMEOUT } = process.env;
const STORAGE_STATE_PATH = 'artifacts/storage-states/admin.json';
/**
* See https://playwright.dev/docs/test-configuration
*/
export default defineConfig( {
/* Global setup */
globalSetup: require.resolve( './tests/e2e/global-setup.ts' ),
/* Test file match extension. Currently only supporting `.spec.ts` extension */
testMatch: [ 'tests/e2e/**/*.spec.ts' ],
/* Run tests in files in parallel */
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !! CI,
/* Retry on CI only */
retries: CI ? 2 : 0,
/* Opt out of parallel tests on CI. */
workers: CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'html',
/* Report don't show test files. See https://playwright.dev/docs/api/class-testconfig#test-config-report-slow-tests */
reportSlowTests: null,
/* https://playwright.dev/docs/test-timeouts#set-test-timeout-in-the-config */
timeout: parseInt( TIMEOUT || '', 10 ) || 60_000,
/* Web-first assertions - separate timeout. See https://playwright.dev/docs/test-timeouts#expect-timeout */
expect: {
timeout: 10 * 1000,
},
/* 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: BASE_URL ?? 'http://localhost:8889',
headless: true,
/* Take screenshot on failure. */
screenshot: 'only-on-failure',
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry',
/* Emulates consistent viewport for each page. See https://playwright.dev/docs/api/class-testoptions#test-options-viewport */
viewport: {
width: 1280,
height: 720,
},
/* https://playwright.dev/docs/api/class-testoptions#test-options-ignore-https-errors */
ignoreHTTPSErrors: true,
/* Emulates the user locale. See https://playwright.dev/docs/emulation#locale--timezone */
locale: 'en-US',
/* Options used to create the context. See https://playwright.dev/docs/api/class-testoptions#test-options-context-options */
contextOptions: {
reducedMotion: 'reduce',
strictSelectors: true,
},
/* Auth storage state path. See https://playwright.dev/docs/api/class-testoptions#test-options-storage-state */
storageState: STORAGE_STATE_PATH,
},
/* Configure projects for major browsers. See https://playwright.dev/docs/test-projects#configure-projects-for-multiple-browsers */
projects: [
{
name: 'chromium',
use: {
...devices[ 'Desktop Chrome' ],
},
},
],
/* Run your local dev server before starting the tests */
webServer: {
command: 'npm run env:start',
url: 'http://localhost:8889',
reuseExistingServer: ! CI,
timeout: 1_800_000,
},
} );