@spscommerce/e2e-core 2.2.6 → 2.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -2
- package/lib/globalSetup.js +4 -0
- package/lib/globalSetup.js.map +1 -1
- package/package.json +1 -1
- package/playwright.config.js +2 -2
- package/src/globalSetup.ts +4 -0
package/README.md
CHANGED
|
@@ -19,8 +19,10 @@ export USER_PASSWORD="EXAMPLE_PASSWORD"
|
|
|
19
19
|
|
|
20
20
|
5. Create .env file in the tests-e2e/ directory with an appropriate process.env variables listed below in the table. E.g.:
|
|
21
21
|
```
|
|
22
|
-
|
|
22
|
+
TEST_TIMEOUT=75000
|
|
23
|
+
ACTION_TIMEOUT=45000
|
|
23
24
|
WORKERS=6
|
|
25
|
+
REPO_NAME=fulfillment-ui-v2
|
|
24
26
|
VIEWPORT={"width": 1920, "height": 1080}
|
|
25
27
|
```
|
|
26
28
|
| Variable | description | default | possible values |
|
|
@@ -28,7 +30,8 @@ VIEWPORT={"width": 1920, "height": 1080}
|
|
|
28
30
|
| HEADLESS | launch browser in headless/headful mode | true | true, false |
|
|
29
31
|
| BROWSER | use + as a separator, e.g edge+firefox | chromium | chromium, firefox, webkit, edge |
|
|
30
32
|
| ENV | auth state is invoked for the defined env | test | test, prod |
|
|
31
|
-
|
|
|
33
|
+
| TEST_TIMEOUT | global timeout for each test | 30000 | [number_in_ms] |
|
|
34
|
+
| ACTION_TIMEOUT | global timeout for each PW action, like click() | 30000 | [number_in_ms] |
|
|
32
35
|
| WORKERS | number of workers (test threads) | 1 | [number] |
|
|
33
36
|
| TRACER | create PW actions trace file per each failed test | false | true, false |
|
|
34
37
|
| VIEWPORT | emulates consistent viewport for each page | {"width": 1536, "height": 960} | [string] |
|
|
@@ -37,6 +40,7 @@ VIEWPORT={"width": 1920, "height": 1080}
|
|
|
37
40
|
| TEST_DIR | used in package.json: tests directory path | - | [string] |
|
|
38
41
|
| CONFIG_PATH | used in package.json: .env file path | - | [string] |
|
|
39
42
|
| SETUP_PATH | used in package.json: globalSetup.js file path | - | [string] |
|
|
43
|
+
| REPO_NAME | creates GH repo link on test in log files | - | [string] |
|
|
40
44
|
|
|
41
45
|
6. Setup the following "scripts" commands in the `package.json` according to your paths:
|
|
42
46
|
```
|
package/lib/globalSetup.js
CHANGED
|
@@ -56,6 +56,10 @@ async function globalSetup() {
|
|
|
56
56
|
await page.click('button#btn-next');
|
|
57
57
|
await page.fill('input[type="password"]', process.env.USER_PASSWORD);
|
|
58
58
|
await page.click('button#btn-login');
|
|
59
|
+
await page.waitForURL(/^((?!login).)*$/);
|
|
60
|
+
if (page.url().includes('select-org')) {
|
|
61
|
+
await page.click('button[type="submit"]');
|
|
62
|
+
}
|
|
59
63
|
await page.waitForURL(/launchpad/);
|
|
60
64
|
await page.context().storageState({ path: storageFile });
|
|
61
65
|
}
|
package/lib/globalSetup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalSetup.js","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"globalSetup.js","sourceRoot":"","sources":["../src/globalSetup.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/playwright.config.js
CHANGED
|
@@ -47,7 +47,7 @@ const config = {
|
|
|
47
47
|
/* Directory that will be recursively scanned for test files. */
|
|
48
48
|
testDir: process.env.TEST_DIR,
|
|
49
49
|
/* Maximum time one test can run for. */
|
|
50
|
-
timeout: +process.env.
|
|
50
|
+
timeout: +process.env.TEST_TIMEOUT || 30000,
|
|
51
51
|
/* Maximum time expect() should wait for the condition to be met. */
|
|
52
52
|
expect: {
|
|
53
53
|
timeout: 5000
|
|
@@ -73,7 +73,7 @@ const config = {
|
|
|
73
73
|
use: {
|
|
74
74
|
storageState: path.join(process.cwd(), 'results-e2e/auth/storageState.json'),
|
|
75
75
|
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
|
|
76
|
-
actionTimeout: 30000,
|
|
76
|
+
actionTimeout: +process.env.ACTION_TIMEOUT || 30000,
|
|
77
77
|
/* Collect screenshot after each test failure. See https://playwright.dev/docs/test-configuration#automatic-screenshots */
|
|
78
78
|
screenshot: 'only-on-failure',
|
|
79
79
|
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
package/src/globalSetup.ts
CHANGED
|
@@ -28,6 +28,10 @@ async function globalSetup() {
|
|
|
28
28
|
await page.click('button#btn-next');
|
|
29
29
|
await page.fill('input[type="password"]', process.env.USER_PASSWORD);
|
|
30
30
|
await page.click('button#btn-login');
|
|
31
|
+
await page.waitForURL(/^((?!login).)*$/);
|
|
32
|
+
if (page.url().includes('select-org')) {
|
|
33
|
+
await page.click('button[type="submit"]');
|
|
34
|
+
}
|
|
31
35
|
await page.waitForURL(/launchpad/);
|
|
32
36
|
await page.context().storageState({ path: storageFile });
|
|
33
37
|
} catch (e) {
|