@quickpickle/playwright 0.9.4 → 0.9.6
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/dist/PlaywrightWorld.cjs +26 -7
- package/dist/PlaywrightWorld.cjs.map +1 -1
- package/dist/PlaywrightWorld.d.ts +20 -6
- package/dist/PlaywrightWorld.mjs +28 -9
- package/dist/PlaywrightWorld.mjs.map +1 -1
- package/dist/actions.steps.cjs +35 -24
- package/dist/actions.steps.cjs.map +1 -1
- package/dist/actions.steps.mjs +35 -24
- package/dist/actions.steps.mjs.map +1 -1
- package/dist/outcomes.steps.cjs +144 -33
- package/dist/outcomes.steps.cjs.map +1 -1
- package/dist/outcomes.steps.d.ts +1 -1
- package/dist/outcomes.steps.mjs +144 -33
- package/dist/outcomes.steps.mjs.map +1 -1
- package/dist/snapshotMatcher.cjs +88 -0
- package/dist/snapshotMatcher.cjs.map +1 -0
- package/dist/snapshotMatcher.d.ts +23 -0
- package/dist/snapshotMatcher.mjs +86 -0
- package/dist/snapshotMatcher.mjs.map +1 -0
- package/package.json +9 -2
package/dist/PlaywrightWorld.cjs
CHANGED
|
@@ -4,27 +4,40 @@ var playwright = require('playwright');
|
|
|
4
4
|
var quickpickle = require('quickpickle');
|
|
5
5
|
var lodashEs = require('lodash-es');
|
|
6
6
|
|
|
7
|
+
const browsers = { chromium: playwright.chromium, firefox: playwright.firefox, webkit: playwright.webkit };
|
|
7
8
|
const defaultPlaywrightWorldConfig = {
|
|
9
|
+
host: 'http://localhost',
|
|
10
|
+
screenshotDir: 'screenshots',
|
|
8
11
|
nojsTags: ['@nojs', '@noscript'],
|
|
12
|
+
showBrowserTags: ['@browser', '@show-browser', '@showbrowser'],
|
|
13
|
+
slowMoTags: ['@slowmo'],
|
|
9
14
|
headless: true,
|
|
10
|
-
slowMo:
|
|
15
|
+
slowMo: false,
|
|
16
|
+
slowMoMs: 500,
|
|
11
17
|
};
|
|
12
18
|
class PlaywrightWorld extends quickpickle.QuickPickleWorld {
|
|
13
|
-
constructor(context, info, worldConfig) {
|
|
19
|
+
constructor(context, info, worldConfig = {}) {
|
|
14
20
|
super(context, info);
|
|
15
21
|
this.playwrightConfig = defaultPlaywrightWorldConfig;
|
|
16
|
-
let newConfig = lodashEs.
|
|
22
|
+
let newConfig = lodashEs.defaultsDeep(worldConfig || {}, defaultPlaywrightWorldConfig);
|
|
17
23
|
newConfig.nojsTags = quickpickle.normalizeTags(newConfig.nojsTags);
|
|
24
|
+
newConfig.showBrowserTags = quickpickle.normalizeTags(newConfig.showBrowserTags);
|
|
25
|
+
newConfig.slowMoTags = quickpickle.normalizeTags(newConfig.slowMoTags);
|
|
26
|
+
if (typeof newConfig.slowMo === 'number') {
|
|
27
|
+
newConfig.slowMoMs = newConfig.slowMo;
|
|
28
|
+
newConfig.slowMo = newConfig.slowMoMs > 0;
|
|
29
|
+
}
|
|
18
30
|
this.playwrightConfig = newConfig;
|
|
19
31
|
}
|
|
20
32
|
async init() {
|
|
21
|
-
this.
|
|
22
|
-
|
|
23
|
-
|
|
33
|
+
let browserName = this.info.tags.find(t => t.match(/^@(?:chromium|firefox|webkit)$/))?.replace(/^@/, '') ?? 'chromium';
|
|
34
|
+
this.browser = await browsers[browserName].launch({
|
|
35
|
+
headless: this.tagsMatch(this.playwrightConfig.showBrowserTags) ? false : this.playwrightConfig.headless,
|
|
36
|
+
slowMo: (this.playwrightConfig.slowMo || this.tagsMatch(this.playwrightConfig.slowMoTags)) ? this.playwrightConfig.slowMoMs : 0
|
|
24
37
|
});
|
|
25
38
|
this.browserContext = await this.browser.newContext({
|
|
26
39
|
serviceWorkers: 'block',
|
|
27
|
-
javaScriptEnabled:
|
|
40
|
+
javaScriptEnabled: this.tagsMatch(this.playwrightConfig.nojsTags) ? false : true,
|
|
28
41
|
});
|
|
29
42
|
this.page = await this.browserContext.newPage();
|
|
30
43
|
}
|
|
@@ -39,6 +52,12 @@ class PlaywrightWorld extends quickpickle.QuickPickleWorld {
|
|
|
39
52
|
async close() {
|
|
40
53
|
await this.browser.close();
|
|
41
54
|
}
|
|
55
|
+
get baseUrl() {
|
|
56
|
+
if (this.playwrightConfig.port)
|
|
57
|
+
return new URL(`${this.playwrightConfig.host}:${this.playwrightConfig.port}`);
|
|
58
|
+
else
|
|
59
|
+
return new URL(this.playwrightConfig.host);
|
|
60
|
+
}
|
|
42
61
|
}
|
|
43
62
|
quickpickle.After(async (world) => {
|
|
44
63
|
await world.browserContext.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightWorld.cjs","sources":["../src/PlaywrightWorld.ts"],"sourcesContent":[null],"names":["
|
|
1
|
+
{"version":3,"file":"PlaywrightWorld.cjs","sources":["../src/PlaywrightWorld.ts"],"sourcesContent":[null],"names":["chromium","firefox","webkit","QuickPickleWorld","defaultsDeep","normalizeTags","After"],"mappings":"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"}
|
|
@@ -1,17 +1,30 @@
|
|
|
1
1
|
import { type Browser, type BrowserContext, type Page } from 'playwright';
|
|
2
2
|
import { QuickPickleWorld, QuickPickleWorldInterface } from 'quickpickle';
|
|
3
3
|
import type { TestContext } from 'vitest';
|
|
4
|
-
export type PlaywrightWorldConfigSetting = {
|
|
5
|
-
|
|
4
|
+
export type PlaywrightWorldConfigSetting = Partial<{
|
|
5
|
+
host: string;
|
|
6
|
+
port: number;
|
|
7
|
+
screenshotDir: string;
|
|
8
|
+
nojsTags: string | string[];
|
|
9
|
+
showBrowserTags: string | string[];
|
|
10
|
+
slowMoTags: string | string[];
|
|
6
11
|
headless: boolean;
|
|
7
|
-
|
|
8
|
-
|
|
12
|
+
slowMo: boolean | number;
|
|
13
|
+
slowMoMs: number;
|
|
14
|
+
}>;
|
|
9
15
|
export declare const defaultPlaywrightWorldConfig: {
|
|
16
|
+
host: string;
|
|
17
|
+
screenshotDir: string;
|
|
10
18
|
nojsTags: string[];
|
|
19
|
+
showBrowserTags: string[];
|
|
20
|
+
slowMoTags: string[];
|
|
11
21
|
headless: boolean;
|
|
12
|
-
slowMo:
|
|
22
|
+
slowMo: boolean;
|
|
23
|
+
slowMoMs: number;
|
|
24
|
+
};
|
|
25
|
+
export type PlaywrightWorldConfig = typeof defaultPlaywrightWorldConfig & {
|
|
26
|
+
port?: number;
|
|
13
27
|
};
|
|
14
|
-
export type PlaywrightWorldConfig = typeof defaultPlaywrightWorldConfig;
|
|
15
28
|
export declare class PlaywrightWorld extends QuickPickleWorld {
|
|
16
29
|
browser: Browser;
|
|
17
30
|
browserContext: BrowserContext;
|
|
@@ -21,4 +34,5 @@ export declare class PlaywrightWorld extends QuickPickleWorld {
|
|
|
21
34
|
init(): Promise<void>;
|
|
22
35
|
reset(): Promise<void>;
|
|
23
36
|
close(): Promise<void>;
|
|
37
|
+
get baseUrl(): URL;
|
|
24
38
|
}
|
package/dist/PlaywrightWorld.mjs
CHANGED
|
@@ -1,28 +1,41 @@
|
|
|
1
|
-
import { chromium } from 'playwright';
|
|
1
|
+
import { chromium, firefox, webkit } from 'playwright';
|
|
2
2
|
import { After, QuickPickleWorld, normalizeTags } from 'quickpickle';
|
|
3
|
-
import {
|
|
3
|
+
import { defaultsDeep } from 'lodash-es';
|
|
4
4
|
|
|
5
|
+
const browsers = { chromium, firefox, webkit };
|
|
5
6
|
const defaultPlaywrightWorldConfig = {
|
|
7
|
+
host: 'http://localhost',
|
|
8
|
+
screenshotDir: 'screenshots',
|
|
6
9
|
nojsTags: ['@nojs', '@noscript'],
|
|
10
|
+
showBrowserTags: ['@browser', '@show-browser', '@showbrowser'],
|
|
11
|
+
slowMoTags: ['@slowmo'],
|
|
7
12
|
headless: true,
|
|
8
|
-
slowMo:
|
|
13
|
+
slowMo: false,
|
|
14
|
+
slowMoMs: 500,
|
|
9
15
|
};
|
|
10
16
|
class PlaywrightWorld extends QuickPickleWorld {
|
|
11
|
-
constructor(context, info, worldConfig) {
|
|
17
|
+
constructor(context, info, worldConfig = {}) {
|
|
12
18
|
super(context, info);
|
|
13
19
|
this.playwrightConfig = defaultPlaywrightWorldConfig;
|
|
14
|
-
let newConfig =
|
|
20
|
+
let newConfig = defaultsDeep(worldConfig || {}, defaultPlaywrightWorldConfig);
|
|
15
21
|
newConfig.nojsTags = normalizeTags(newConfig.nojsTags);
|
|
22
|
+
newConfig.showBrowserTags = normalizeTags(newConfig.showBrowserTags);
|
|
23
|
+
newConfig.slowMoTags = normalizeTags(newConfig.slowMoTags);
|
|
24
|
+
if (typeof newConfig.slowMo === 'number') {
|
|
25
|
+
newConfig.slowMoMs = newConfig.slowMo;
|
|
26
|
+
newConfig.slowMo = newConfig.slowMoMs > 0;
|
|
27
|
+
}
|
|
16
28
|
this.playwrightConfig = newConfig;
|
|
17
29
|
}
|
|
18
30
|
async init() {
|
|
19
|
-
this.
|
|
20
|
-
|
|
21
|
-
|
|
31
|
+
let browserName = this.info.tags.find(t => t.match(/^@(?:chromium|firefox|webkit)$/))?.replace(/^@/, '') ?? 'chromium';
|
|
32
|
+
this.browser = await browsers[browserName].launch({
|
|
33
|
+
headless: this.tagsMatch(this.playwrightConfig.showBrowserTags) ? false : this.playwrightConfig.headless,
|
|
34
|
+
slowMo: (this.playwrightConfig.slowMo || this.tagsMatch(this.playwrightConfig.slowMoTags)) ? this.playwrightConfig.slowMoMs : 0
|
|
22
35
|
});
|
|
23
36
|
this.browserContext = await this.browser.newContext({
|
|
24
37
|
serviceWorkers: 'block',
|
|
25
|
-
javaScriptEnabled:
|
|
38
|
+
javaScriptEnabled: this.tagsMatch(this.playwrightConfig.nojsTags) ? false : true,
|
|
26
39
|
});
|
|
27
40
|
this.page = await this.browserContext.newPage();
|
|
28
41
|
}
|
|
@@ -37,6 +50,12 @@ class PlaywrightWorld extends QuickPickleWorld {
|
|
|
37
50
|
async close() {
|
|
38
51
|
await this.browser.close();
|
|
39
52
|
}
|
|
53
|
+
get baseUrl() {
|
|
54
|
+
if (this.playwrightConfig.port)
|
|
55
|
+
return new URL(`${this.playwrightConfig.host}:${this.playwrightConfig.port}`);
|
|
56
|
+
else
|
|
57
|
+
return new URL(this.playwrightConfig.host);
|
|
58
|
+
}
|
|
40
59
|
}
|
|
41
60
|
After(async (world) => {
|
|
42
61
|
await world.browserContext.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlaywrightWorld.mjs","sources":["../src/PlaywrightWorld.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"PlaywrightWorld.mjs","sources":["../src/PlaywrightWorld.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/actions.steps.cjs
CHANGED
|
@@ -7,34 +7,41 @@ var url = require('node:url');
|
|
|
7
7
|
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
8
8
|
const projectRoot = path.resolve(path.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('actions.steps.cjs', document.baseURI).href)))), '..');
|
|
9
9
|
quickpickle.Given('I am on {string}', async function (world, path) {
|
|
10
|
-
let url = new URL(path,
|
|
10
|
+
let url = new URL(path, world.baseUrl);
|
|
11
11
|
await world.page.goto(url.href);
|
|
12
|
-
await world.page.waitForTimeout(80);
|
|
13
12
|
});
|
|
14
13
|
quickpickle.When(`I visit {string}`, async function (world, path) {
|
|
15
|
-
let url = new URL(path,
|
|
14
|
+
let url = new URL(path, world.baseUrl);
|
|
16
15
|
await world.page.goto(url.href);
|
|
17
|
-
await world.page.waitForTimeout(80);
|
|
18
16
|
});
|
|
19
17
|
quickpickle.When(`I navigate/go to {string}`, async function (world, path) {
|
|
20
|
-
let url = new URL(path,
|
|
18
|
+
let url = new URL(path, world.baseUrl);
|
|
21
19
|
await world.page.goto(url.href);
|
|
22
|
-
|
|
20
|
+
});
|
|
21
|
+
quickpickle.When('I load the file {string}', async (world, path) => {
|
|
22
|
+
await world.page.goto(`file://${projectRoot}/${path}`);
|
|
23
23
|
});
|
|
24
24
|
quickpickle.When('I click/press/tap/touch (on ){string}', async function (world, identifier) {
|
|
25
|
-
|
|
26
|
-
await locator.click();
|
|
25
|
+
await world.page.getByText(identifier, { exact: true }).click();
|
|
27
26
|
});
|
|
28
27
|
quickpickle.When('I click/press/tap/touch (on )the {string} {word}', async function (world, identifier, role) {
|
|
29
|
-
let locator
|
|
28
|
+
let locator;
|
|
29
|
+
if (role === 'element')
|
|
30
|
+
locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
|
|
31
|
+
else
|
|
32
|
+
locator = await world.page.getByRole(role, { name: identifier });
|
|
30
33
|
await locator.click();
|
|
31
34
|
});
|
|
32
35
|
quickpickle.When('I focus/select/activate (on ){string}', async function (world, identifier) {
|
|
33
|
-
let locator = await world.page.locator(identifier);
|
|
36
|
+
let locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
|
|
34
37
|
await locator.focus();
|
|
35
38
|
});
|
|
36
39
|
quickpickle.When('I focus/select/activate (on )the {string} {word}', async function (world, identifier, role) {
|
|
37
|
-
let locator
|
|
40
|
+
let locator;
|
|
41
|
+
if (role === 'element')
|
|
42
|
+
locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
|
|
43
|
+
else
|
|
44
|
+
locator = await world.page.getByRole(role, { name: identifier });
|
|
38
45
|
await locator.focus();
|
|
39
46
|
});
|
|
40
47
|
quickpickle.When("for (the ){string} I enter/fill (in ){string}", async function (world, identifier, text) {
|
|
@@ -42,7 +49,7 @@ quickpickle.When("for (the ){string} I enter/fill (in ){string}", async function
|
|
|
42
49
|
await locator.fill(text);
|
|
43
50
|
});
|
|
44
51
|
quickpickle.When("for (the ){string} I enter/fill (in )the following( text):", async function (world, identifier, text) {
|
|
45
|
-
let locator = await world.page.getByLabel(identifier).or(
|
|
52
|
+
let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
|
|
46
53
|
await locator.fill(text);
|
|
47
54
|
});
|
|
48
55
|
quickpickle.When('I enter/fill (in )the following( fields):', async function (world, table) {
|
|
@@ -63,19 +70,24 @@ quickpickle.When('I enter/fill (in )the following( fields):', async function (wo
|
|
|
63
70
|
}
|
|
64
71
|
}
|
|
65
72
|
});
|
|
66
|
-
quickpickle.When(
|
|
67
|
-
let
|
|
73
|
+
quickpickle.When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, identifier) {
|
|
74
|
+
let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
|
|
75
|
+
let locator = await world.page.getByText(identifier, { exact: true }).or(world.page.getByLabel(identifier)).or(world.page.locator(identifier));
|
|
68
76
|
await locator.waitFor({ state });
|
|
69
77
|
});
|
|
70
|
-
quickpickle.When(
|
|
78
|
+
quickpickle.When('I wait for {int}ms', async function (world, num) {
|
|
79
|
+
await world.page.waitForTimeout(num);
|
|
80
|
+
});
|
|
81
|
+
quickpickle.When('I scroll down/up/left/right', async function (world) {
|
|
82
|
+
let direction = world.info.step?.match(/(down|up|left|right)$/)[0];
|
|
71
83
|
let num = 100;
|
|
72
84
|
let horiz = direction.includes('t');
|
|
73
85
|
if (horiz)
|
|
74
86
|
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
75
87
|
await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
|
|
76
88
|
});
|
|
77
|
-
quickpickle.When(
|
|
78
|
-
let
|
|
89
|
+
quickpickle.When('I scroll down/up/left/right {int}(px)( pixels)', async function (world, num) {
|
|
90
|
+
let direction = world.info.step?.match(/(down|up|left|right)(?= \d)/)[0];
|
|
79
91
|
let horiz = direction.includes('t');
|
|
80
92
|
if (horiz)
|
|
81
93
|
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
@@ -87,19 +99,18 @@ quickpickle.When('I type the following keys: {}', async function (world, keys) {
|
|
|
87
99
|
await world.page.keyboard.press(key);
|
|
88
100
|
}
|
|
89
101
|
});
|
|
90
|
-
quickpickle.When(
|
|
102
|
+
quickpickle.When('I go back/forwards?', async function (world) {
|
|
103
|
+
let direction = world.info.step?.match(/(back|forwards?)$/)[0];
|
|
91
104
|
if (direction === 'back')
|
|
92
105
|
await world.page.goBack();
|
|
93
106
|
else
|
|
94
107
|
await world.page.goForward();
|
|
95
108
|
});
|
|
96
|
-
quickpickle.Then('(I )take (a )screenshot', async function (world
|
|
97
|
-
await world.page.
|
|
98
|
-
await world.page.screenshot({ path: `${projectRoot}/screenshots/${world.info.scenario}__${world.info.line}.png`.replace(/\/\//g, '/') });
|
|
109
|
+
quickpickle.Then('(I )take (a )screenshot', async function (world) {
|
|
110
|
+
await world.page.screenshot({ path: `${projectRoot}/${world.playwrightConfig.screenshotDir}/${world.info.rule ? world.info.rule + '__' + world.info.scenario : world.info.scenario}__${world.info.line}.png`.replace(/\/\//g, '/') });
|
|
99
111
|
});
|
|
100
|
-
quickpickle.Then('(I )take (a )screenshot
|
|
101
|
-
await world.page.
|
|
102
|
-
await world.page.screenshot({ path: `${projectRoot}/${dir}/${world.info.scenario}__${world.info.line}.png`.replace(/\/\//g, '/') });
|
|
112
|
+
quickpickle.Then('(I )take (a )screenshot named {string}', async function (world, name) {
|
|
113
|
+
await world.page.screenshot({ path: `${projectRoot}/${world.playwrightConfig.screenshotDir}/${name}.png`.replace(/\/\//g, '/') });
|
|
103
114
|
});
|
|
104
115
|
|
|
105
116
|
exports.projectRoot = projectRoot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.steps.cjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":["Given","When","Then"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"actions.steps.cjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":["Given","When","Then"],"mappings":"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"}
|
package/dist/actions.steps.mjs
CHANGED
|
@@ -4,34 +4,41 @@ import url from 'node:url';
|
|
|
4
4
|
|
|
5
5
|
const projectRoot = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), '..');
|
|
6
6
|
Given('I am on {string}', async function (world, path) {
|
|
7
|
-
let url = new URL(path,
|
|
7
|
+
let url = new URL(path, world.baseUrl);
|
|
8
8
|
await world.page.goto(url.href);
|
|
9
|
-
await world.page.waitForTimeout(80);
|
|
10
9
|
});
|
|
11
10
|
When(`I visit {string}`, async function (world, path) {
|
|
12
|
-
let url = new URL(path,
|
|
11
|
+
let url = new URL(path, world.baseUrl);
|
|
13
12
|
await world.page.goto(url.href);
|
|
14
|
-
await world.page.waitForTimeout(80);
|
|
15
13
|
});
|
|
16
14
|
When(`I navigate/go to {string}`, async function (world, path) {
|
|
17
|
-
let url = new URL(path,
|
|
15
|
+
let url = new URL(path, world.baseUrl);
|
|
18
16
|
await world.page.goto(url.href);
|
|
19
|
-
|
|
17
|
+
});
|
|
18
|
+
When('I load the file {string}', async (world, path) => {
|
|
19
|
+
await world.page.goto(`file://${projectRoot}/${path}`);
|
|
20
20
|
});
|
|
21
21
|
When('I click/press/tap/touch (on ){string}', async function (world, identifier) {
|
|
22
|
-
|
|
23
|
-
await locator.click();
|
|
22
|
+
await world.page.getByText(identifier, { exact: true }).click();
|
|
24
23
|
});
|
|
25
24
|
When('I click/press/tap/touch (on )the {string} {word}', async function (world, identifier, role) {
|
|
26
|
-
let locator
|
|
25
|
+
let locator;
|
|
26
|
+
if (role === 'element')
|
|
27
|
+
locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
|
|
28
|
+
else
|
|
29
|
+
locator = await world.page.getByRole(role, { name: identifier });
|
|
27
30
|
await locator.click();
|
|
28
31
|
});
|
|
29
32
|
When('I focus/select/activate (on ){string}', async function (world, identifier) {
|
|
30
|
-
let locator = await world.page.locator(identifier);
|
|
33
|
+
let locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
|
|
31
34
|
await locator.focus();
|
|
32
35
|
});
|
|
33
36
|
When('I focus/select/activate (on )the {string} {word}', async function (world, identifier, role) {
|
|
34
|
-
let locator
|
|
37
|
+
let locator;
|
|
38
|
+
if (role === 'element')
|
|
39
|
+
locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
|
|
40
|
+
else
|
|
41
|
+
locator = await world.page.getByRole(role, { name: identifier });
|
|
35
42
|
await locator.focus();
|
|
36
43
|
});
|
|
37
44
|
When("for (the ){string} I enter/fill (in ){string}", async function (world, identifier, text) {
|
|
@@ -39,7 +46,7 @@ When("for (the ){string} I enter/fill (in ){string}", async function (world, ide
|
|
|
39
46
|
await locator.fill(text);
|
|
40
47
|
});
|
|
41
48
|
When("for (the ){string} I enter/fill (in )the following( text):", async function (world, identifier, text) {
|
|
42
|
-
let locator = await world.page.getByLabel(identifier).or(
|
|
49
|
+
let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
|
|
43
50
|
await locator.fill(text);
|
|
44
51
|
});
|
|
45
52
|
When('I enter/fill (in )the following( fields):', async function (world, table) {
|
|
@@ -60,19 +67,24 @@ When('I enter/fill (in )the following( fields):', async function (world, table)
|
|
|
60
67
|
}
|
|
61
68
|
}
|
|
62
69
|
});
|
|
63
|
-
When(
|
|
64
|
-
let
|
|
70
|
+
When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, identifier) {
|
|
71
|
+
let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
|
|
72
|
+
let locator = await world.page.getByText(identifier, { exact: true }).or(world.page.getByLabel(identifier)).or(world.page.locator(identifier));
|
|
65
73
|
await locator.waitFor({ state });
|
|
66
74
|
});
|
|
67
|
-
When(
|
|
75
|
+
When('I wait for {int}ms', async function (world, num) {
|
|
76
|
+
await world.page.waitForTimeout(num);
|
|
77
|
+
});
|
|
78
|
+
When('I scroll down/up/left/right', async function (world) {
|
|
79
|
+
let direction = world.info.step?.match(/(down|up|left|right)$/)[0];
|
|
68
80
|
let num = 100;
|
|
69
81
|
let horiz = direction.includes('t');
|
|
70
82
|
if (horiz)
|
|
71
83
|
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
72
84
|
await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
|
|
73
85
|
});
|
|
74
|
-
When(
|
|
75
|
-
let
|
|
86
|
+
When('I scroll down/up/left/right {int}(px)( pixels)', async function (world, num) {
|
|
87
|
+
let direction = world.info.step?.match(/(down|up|left|right)(?= \d)/)[0];
|
|
76
88
|
let horiz = direction.includes('t');
|
|
77
89
|
if (horiz)
|
|
78
90
|
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
@@ -84,19 +96,18 @@ When('I type the following keys: {}', async function (world, keys) {
|
|
|
84
96
|
await world.page.keyboard.press(key);
|
|
85
97
|
}
|
|
86
98
|
});
|
|
87
|
-
When(
|
|
99
|
+
When('I go back/forwards?', async function (world) {
|
|
100
|
+
let direction = world.info.step?.match(/(back|forwards?)$/)[0];
|
|
88
101
|
if (direction === 'back')
|
|
89
102
|
await world.page.goBack();
|
|
90
103
|
else
|
|
91
104
|
await world.page.goForward();
|
|
92
105
|
});
|
|
93
|
-
Then('(I )take (a )screenshot', async function (world
|
|
94
|
-
await world.page.
|
|
95
|
-
await world.page.screenshot({ path: `${projectRoot}/screenshots/${world.info.scenario}__${world.info.line}.png`.replace(/\/\//g, '/') });
|
|
106
|
+
Then('(I )take (a )screenshot', async function (world) {
|
|
107
|
+
await world.page.screenshot({ path: `${projectRoot}/${world.playwrightConfig.screenshotDir}/${world.info.rule ? world.info.rule + '__' + world.info.scenario : world.info.scenario}__${world.info.line}.png`.replace(/\/\//g, '/') });
|
|
96
108
|
});
|
|
97
|
-
Then('(I )take (a )screenshot
|
|
98
|
-
await world.page.
|
|
99
|
-
await world.page.screenshot({ path: `${projectRoot}/${dir}/${world.info.scenario}__${world.info.line}.png`.replace(/\/\//g, '/') });
|
|
109
|
+
Then('(I )take (a )screenshot named {string}', async function (world, name) {
|
|
110
|
+
await world.page.screenshot({ path: `${projectRoot}/${world.playwrightConfig.screenshotDir}/${name}.png`.replace(/\/\//g, '/') });
|
|
100
111
|
});
|
|
101
112
|
|
|
102
113
|
export { projectRoot };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.steps.mjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"actions.steps.mjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|