@quickpickle/playwright 0.10.6 → 0.11.1
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 +182 -0
- package/dist/PlaywrightWorld.cjs.map +1 -1
- package/dist/PlaywrightWorld.d.ts +100 -1
- package/dist/PlaywrightWorld.mjs +181 -1
- package/dist/PlaywrightWorld.mjs.map +1 -1
- package/dist/actions.steps.cjs +51 -70
- package/dist/actions.steps.cjs.map +1 -1
- package/dist/actions.steps.d.ts +1 -1
- package/dist/actions.steps.mjs +51 -69
- package/dist/actions.steps.mjs.map +1 -1
- package/dist/outcomes.steps.cjs +73 -135
- package/dist/outcomes.steps.cjs.map +1 -1
- package/dist/outcomes.steps.mjs +73 -135
- package/dist/outcomes.steps.mjs.map +1 -1
- package/dist/snapshotMatcher.cjs +10 -3
- package/dist/snapshotMatcher.cjs.map +1 -1
- package/dist/snapshotMatcher.d.ts +25 -1
- package/dist/snapshotMatcher.mjs +10 -3
- package/dist/snapshotMatcher.mjs.map +1 -1
- package/dist/world.cjs +3 -0
- package/dist/world.cjs.map +1 -1
- package/dist/world.mjs +3 -0
- package/dist/world.mjs.map +1 -1
- package/package.json +2 -2
- package/dist/helpers.cjs +0 -58
- package/dist/helpers.cjs.map +0 -1
- package/dist/helpers.d.ts +0 -7
- package/dist/helpers.mjs +0 -52
- package/dist/helpers.mjs.map +0 -1
package/dist/actions.steps.cjs
CHANGED
|
@@ -2,67 +2,60 @@
|
|
|
2
2
|
|
|
3
3
|
var quickpickle = require('quickpickle');
|
|
4
4
|
var test = require('@playwright/test');
|
|
5
|
-
var helpers = require('./helpers.cjs');
|
|
6
|
-
var path = require('node:path');
|
|
7
|
-
var url = require('node:url');
|
|
8
5
|
|
|
9
|
-
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
10
|
-
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)))), '..');
|
|
11
6
|
// ================
|
|
12
7
|
// Navigation
|
|
13
8
|
quickpickle.Given('I am on {string}', async function (world, path) {
|
|
14
9
|
let url = new URL(path, world.baseUrl);
|
|
15
|
-
await world.page.goto(url.href);
|
|
10
|
+
await world.page.goto(url.href, { timeout: world.worldConfig.stepTimeout });
|
|
16
11
|
});
|
|
17
12
|
quickpickle.When(`I visit {string}`, async function (world, path) {
|
|
18
13
|
let url = new URL(path, world.baseUrl);
|
|
19
|
-
await world.page.goto(url.href);
|
|
14
|
+
await world.page.goto(url.href, { timeout: world.worldConfig.stepTimeout });
|
|
20
15
|
});
|
|
21
16
|
quickpickle.When(`I navigate/go to {string}`, async function (world, path) {
|
|
22
17
|
let url = new URL(path, world.baseUrl);
|
|
23
|
-
await world.page.goto(url.href);
|
|
18
|
+
await world.page.goto(url.href, { timeout: world.worldConfig.stepTimeout });
|
|
24
19
|
});
|
|
25
20
|
quickpickle.When('I load the file {string}', async (world, path) => {
|
|
26
|
-
await world.page.goto(`file://${projectRoot}/${path}
|
|
21
|
+
await world.page.goto(`file://${world.projectRoot}/${path}`, { timeout: world.worldConfig.stepTimeout });
|
|
27
22
|
});
|
|
28
23
|
quickpickle.When('I go back/forward/forwards', async function (world) {
|
|
29
24
|
let direction = world.info.step?.match(/(back|forwards?)$/)[0];
|
|
30
25
|
if (direction === 'back')
|
|
31
|
-
await world.page.goBack();
|
|
26
|
+
await world.page.goBack({ timeout: world.worldConfig.stepTimeout });
|
|
32
27
|
else
|
|
33
|
-
await world.page.goForward();
|
|
28
|
+
await world.page.goForward({ timeout: world.worldConfig.stepTimeout });
|
|
34
29
|
});
|
|
35
30
|
// ================
|
|
36
31
|
// Interaction
|
|
37
32
|
quickpickle.When('I click/press/tap/touch (on ){string}', async function (world, identifier) {
|
|
38
33
|
let locator = world.page.getByText(identifier, { exact: true });
|
|
39
|
-
await
|
|
40
|
-
await locator.click();
|
|
34
|
+
await locator.click({ timeout: world.worldConfig.stepTimeout });
|
|
41
35
|
});
|
|
42
36
|
quickpickle.When('I click/press/tap/touch (on )the {string} {word}', async function (world, identifier, role) {
|
|
43
|
-
let locator =
|
|
44
|
-
await
|
|
45
|
-
await locator.click();
|
|
37
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
38
|
+
await locator.click({ timeout: world.worldConfig.stepTimeout });
|
|
46
39
|
});
|
|
47
40
|
quickpickle.When('I focus/select/activate (on ){string}', async function (world, identifier) {
|
|
48
41
|
let locator = await world.page.getByText(identifier, { exact: true });
|
|
49
|
-
await
|
|
50
|
-
await locator.
|
|
42
|
+
await locator.focus({ timeout: world.worldConfig.stepTimeout });
|
|
43
|
+
await test.expect(locator).toBeFocused();
|
|
51
44
|
});
|
|
52
45
|
quickpickle.When('I focus/select/activate (on )the {string} {word}', async function (world, identifier, role) {
|
|
53
|
-
let locator =
|
|
54
|
-
await
|
|
55
|
-
await locator.
|
|
46
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
47
|
+
await locator.focus({ timeout: world.worldConfig.stepTimeout });
|
|
48
|
+
await test.expect(locator).toBeFocused();
|
|
56
49
|
});
|
|
57
50
|
// ================
|
|
58
51
|
// Typing
|
|
59
52
|
quickpickle.When("for/in/on (the ){string} I type {string}", async function (world, identifier, value) {
|
|
60
|
-
let locator =
|
|
61
|
-
await locator.pressSequentially(value);
|
|
53
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
54
|
+
await locator.pressSequentially(value, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
62
55
|
});
|
|
63
56
|
quickpickle.When("for/in/on (the ){string} {word} I type {string}", async function (world, identifier, role, value) {
|
|
64
|
-
let locator =
|
|
65
|
-
await locator.pressSequentially(value);
|
|
57
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
58
|
+
await locator.pressSequentially(value, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
66
59
|
});
|
|
67
60
|
quickpickle.When('I type the following keys: {}', async function (world, keys) {
|
|
68
61
|
let keyPresses = keys.split(' ');
|
|
@@ -70,32 +63,32 @@ quickpickle.When('I type the following keys: {}', async function (world, keys) {
|
|
|
70
63
|
await world.page.keyboard.press(key, { delay: world.worldConfig.keyboardDelay });
|
|
71
64
|
});
|
|
72
65
|
quickpickle.When("for/in/on (the ){string} I type the following keys: {}", async function (world, identifier, keys) {
|
|
73
|
-
let locator =
|
|
66
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
74
67
|
for (let key of keys)
|
|
75
|
-
await locator.press(key, { delay: world.worldConfig.keyboardDelay });
|
|
68
|
+
await locator.press(key, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
76
69
|
});
|
|
77
70
|
quickpickle.When("for/in/on (the ){string} {word} I type the following keys: {}", async function (world, identifier, role, keys) {
|
|
78
|
-
let locator =
|
|
71
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
79
72
|
for (let key of keys)
|
|
80
|
-
await locator.press(key, { delay: world.worldConfig.keyboardDelay });
|
|
73
|
+
await locator.press(key, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
81
74
|
});
|
|
82
75
|
// ================
|
|
83
76
|
// Forms
|
|
84
77
|
quickpickle.When("for/in/on (the ){string} I enter/fill/select (in ){string}", async function (world, identifier, value) {
|
|
85
|
-
let locator =
|
|
86
|
-
await
|
|
78
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
79
|
+
await world.setValue(locator, value);
|
|
87
80
|
});
|
|
88
81
|
quickpickle.When("for/in/on (the ){string} {word} I enter/fill/select (in ){string}", async function (world, identifier, role, value) {
|
|
89
|
-
let locator =
|
|
90
|
-
await
|
|
82
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
83
|
+
await world.setValue(locator, value);
|
|
91
84
|
});
|
|
92
85
|
quickpickle.When("for/in/on (the ){string} I enter/fill/select (in )the following( text):", async function (world, identifier, value) {
|
|
93
|
-
let locator =
|
|
94
|
-
await
|
|
86
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
87
|
+
await world.setValue(locator, value.toString());
|
|
95
88
|
});
|
|
96
89
|
quickpickle.When("for/in/on (the ){string} {word} I enter/fill/select (in )the following( text):", async function (world, identifier, role, value) {
|
|
97
|
-
let locator =
|
|
98
|
-
await
|
|
90
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
91
|
+
await world.setValue(locator, value.toString());
|
|
99
92
|
});
|
|
100
93
|
quickpickle.When('I enter/fill (in )the following( fields):', async function (world, table) {
|
|
101
94
|
let rows = table.raw();
|
|
@@ -106,71 +99,61 @@ quickpickle.When('I enter/fill (in )the following( fields):', async function (wo
|
|
|
106
99
|
value = role;
|
|
107
100
|
role = 'input';
|
|
108
101
|
}
|
|
109
|
-
let locator =
|
|
110
|
-
await
|
|
102
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
103
|
+
await world.setValue(locator, value);
|
|
111
104
|
}
|
|
112
105
|
});
|
|
113
106
|
quickpickle.When('I check (the ){string}( radio)( checkbox)( box)', async function (world, indentifier) {
|
|
114
|
-
let locator =
|
|
115
|
-
await
|
|
107
|
+
let locator = world.getLocator(world.page, indentifier, 'input');
|
|
108
|
+
await world.setValue(locator, 'on');
|
|
116
109
|
});
|
|
117
110
|
quickpickle.When('I uncheck (the ){string}( checkbox)( box)', async function (world, indentifier) {
|
|
118
|
-
let locator =
|
|
119
|
-
await
|
|
111
|
+
let locator = world.getLocator(world.page, indentifier, 'input');
|
|
112
|
+
await world.setValue(locator, 'off');
|
|
120
113
|
});
|
|
121
114
|
// ================
|
|
122
115
|
// Waiting
|
|
123
116
|
quickpickle.When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, text) {
|
|
124
117
|
let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
|
|
125
118
|
let locator = world.page.getByText(text);
|
|
126
|
-
await locator.waitFor({ state, timeout:
|
|
119
|
+
await locator.waitFor({ state, timeout: world.worldConfig.stepTimeout });
|
|
127
120
|
});
|
|
128
121
|
quickpickle.When('I wait for a/an/the {string} {word} to be attached/detatched/visible/hidden', async function (world, identifier, role) {
|
|
129
122
|
let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
|
|
130
|
-
let locator =
|
|
131
|
-
await locator.waitFor({ state, timeout:
|
|
123
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
124
|
+
await locator.waitFor({ state, timeout: world.worldConfig.stepTimeout });
|
|
132
125
|
});
|
|
133
|
-
quickpickle.When('I wait for {int}ms', async function (world, num) {
|
|
126
|
+
quickpickle.When('I wait (for ){int}ms', async function (world, num) {
|
|
134
127
|
await world.page.waitForTimeout(num);
|
|
135
128
|
});
|
|
129
|
+
quickpickle.When('I wait (for ){float} second(s)', async function (world, num) {
|
|
130
|
+
await world.page.waitForTimeout(num * 1000);
|
|
131
|
+
});
|
|
136
132
|
// ================
|
|
137
133
|
// Scrolling
|
|
138
134
|
quickpickle.When('I scroll down/up/left/right', async function (world) {
|
|
139
135
|
let direction = world.info.step?.match(/(down|up|left|right)$/)[0];
|
|
140
|
-
|
|
141
|
-
let horiz = direction.includes('t');
|
|
142
|
-
if (horiz)
|
|
143
|
-
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
144
|
-
await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
|
|
136
|
+
await world.scroll(direction);
|
|
145
137
|
});
|
|
146
138
|
quickpickle.When('I scroll down/up/left/right {int}(px)( pixels)', async function (world, num) {
|
|
147
139
|
let direction = world.info.step?.match(/(down|up|left|right)(?= \d)/)[0];
|
|
148
|
-
|
|
149
|
-
if (horiz)
|
|
150
|
-
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
151
|
-
await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
|
|
140
|
+
await world.scroll(direction, num);
|
|
152
141
|
});
|
|
153
142
|
// ================
|
|
154
143
|
// Screenshots
|
|
155
144
|
quickpickle.Then('(I )take (a )screenshot', async function (world) {
|
|
156
|
-
|
|
157
|
-
await world.page.screenshot({ path });
|
|
145
|
+
await world.screenshot();
|
|
158
146
|
});
|
|
159
147
|
quickpickle.Then('(I )take (a )screenshot named {string}', async function (world, name) {
|
|
160
|
-
|
|
161
|
-
let path = helpers.sanitizeFilepath(`${projectRoot}/${world.worldConfig.screenshotDir}/${name}${explodedTags}.png`);
|
|
162
|
-
await world.page.screenshot({ path });
|
|
148
|
+
await world.screenshot({ name });
|
|
163
149
|
});
|
|
164
150
|
quickpickle.Then('(I )take (a )screenshot of the {string} {word}', async function (world, identifier, role) {
|
|
165
|
-
let locator =
|
|
166
|
-
|
|
167
|
-
await locator.screenshot({ path });
|
|
151
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
152
|
+
await world.screenshot({ locator });
|
|
168
153
|
});
|
|
169
154
|
quickpickle.Then('(I )take (a )screenshot of the {string} {word} named {string}', async function (world, identifier, role, name) {
|
|
170
|
-
let locator =
|
|
171
|
-
|
|
172
|
-
let path = helpers.sanitizeFilepath(`${projectRoot}/${world.worldConfig.screenshotDir}/${name}${explodedTags}.png`);
|
|
173
|
-
await locator.screenshot({ path });
|
|
155
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
156
|
+
await world.screenshot({ locator, name });
|
|
174
157
|
});
|
|
175
158
|
// ================
|
|
176
159
|
// Browser size
|
|
@@ -180,6 +163,4 @@ quickpickle.Given('the browser size is (set to ){word}', async function (world,
|
|
|
180
163
|
quickpickle.Given('the browser size is (set to ){int} x {int}', async function (world, width, height) {
|
|
181
164
|
await world.page.setViewportSize({ width, height });
|
|
182
165
|
});
|
|
183
|
-
|
|
184
|
-
exports.projectRoot = projectRoot;
|
|
185
166
|
//# sourceMappingURL=actions.steps.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.steps.cjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":["Given","When","expect","
|
|
1
|
+
{"version":3,"file":"actions.steps.cjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":["Given","When","expect","Then"],"mappings":";;;;;AAIA;AACA;AAEAA,iBAAK,CAAC,kBAAkB,EAAE,gBAAgB,KAAqB,EAAE,IAAI,EAAA;IACnE,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC5E,CAAC,CAAC,CAAA;AACFC,gBAAI,CAAC,CAAkB,gBAAA,CAAA,EAAE,gBAAgB,KAAqB,EAAE,IAAI,EAAA;IAClE,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC5E,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,CAA2B,yBAAA,CAAA,EAAE,gBAAgB,KAAqB,EAAE,IAAI,EAAA;IAC3E,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC5E,CAAC,CAAC,CAAA;AAEFA,gBAAI,CAAC,0BAA0B,EAAE,OAAO,KAAqB,EAAE,IAAI,KAAI;IACrE,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAU,OAAA,EAAA,KAAK,CAAC,WAAW,CAAI,CAAA,EAAA,IAAI,EAAE,EAAE,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AACzG,CAAC,CAAC,CAAA;AAEFA,gBAAI,CAAC,4BAA4B,EAAE,gBAAgB,KAAqB,EAAA;AACtE,IAAA,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAE,CAAC,CAAC,CAAsB,CAAA;IACpF,IAAI,SAAS,KAAK,MAAM;AAAE,QAAA,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;;AACvF,QAAA,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC5E,CAAC,CAAC,CAAA;AAEF;AACA;AAEAA,gBAAI,CAAC,uCAAuC,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAA;AAC7F,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,KAAK,EAAC,IAAI,EAAE,CAAC,CAAA;AAC9D,IAAA,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,kDAAkD,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAA;AAC9G,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;AAC5D,IAAA,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AAEFA,gBAAI,CAAC,uCAAuC,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAA;AAC7F,IAAA,IAAI,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,KAAK,EAAC,IAAI,EAAE,CAAC,CAAA;AACpE,IAAA,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC9D,IAAA,MAAMC,WAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACrC,CAAC,CAAC,CAAA;AACFD,gBAAI,CAAC,kDAAkD,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAA;AAC9G,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;AAC5D,IAAA,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC9D,IAAA,MAAMC,WAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAA;AACrC,CAAC,CAAC,CAAA;AAEF;AACA;AAEAD,gBAAI,CAAC,0CAA0C,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,KAAK,EAAA;AACvG,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC/D,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC1H,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,iDAAiD,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAA;AACpH,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5D,MAAM,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAC1H,CAAC,CAAC,CAAA;AAEFA,gBAAI,CAAC,+BAA+B,EAAE,gBAAgB,KAAqB,EAAE,IAAW,EAAA;IACtF,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAChC,KAAK,IAAI,GAAG,IAAI,UAAU;QAAE,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAA;AAC7G,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,wDAAwD,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAA;AACpH,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC/D,KAAK,IAAI,GAAG,IAAI,IAAI;QAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAClI,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,+DAA+D,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAA;AACjI,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5D,KAAK,IAAI,GAAG,IAAI,IAAI;QAAE,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAC,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AAClI,CAAC,CAAC,CAAA;AAEF;AACA;AAEAA,gBAAI,CAAC,4DAA4D,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,KAAK,EAAA;AACzH,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC/D,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,mEAAmE,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAA;AACtI,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5D,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,yEAAyE,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,KAAK,EAAA;AACtI,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC/D,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,gFAAgF,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAA;AACnJ,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5D,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,2CAA2C,EAAE,gBAAgB,KAAqB,EAAE,KAAe,EAAA;AACtG,IAAA,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAA;IACtB,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;IAClC,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE,EAAE;QAC3B,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,GAAG,CAAA;QACnC,IAAI,CAAC,OAAO,EAAE;YACZ,KAAK,GAAG,IAAI,CAAA;YACZ,IAAI,GAAG,OAAO,CAAA;SACf;AACD,QAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;QAC5D,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;KACrC;AACH,CAAC,CAAC,CAAA;AAEFA,gBAAI,CAAC,iDAAiD,EAAE,gBAAgB,KAAqB,EAAE,WAAW,EAAA;AACxG,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IAChE,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;AACrC,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,2CAA2C,EAAE,gBAAgB,KAAqB,EAAE,WAAW,EAAA;AAClG,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;IAChE,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA;AAEF;AACA;AAEAA,gBAAI,CAAC,6DAA6D,EAAE,gBAAgB,KAAqB,EAAE,IAAI,EAAA;AAC7G,IAAA,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,sCAAsC,CAAE,CAAC,CAAC,CAA6C,CAAA;IAC1H,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AACxC,IAAA,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AACzE,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,6EAA6E,EAAE,gBAAgB,KAAqB,EAAE,UAAU,EAAE,IAAI,EAAA;AACzI,IAAA,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,sCAAsC,CAAE,CAAC,CAAC,CAA6C,CAAA;AAC1H,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;AAC5D,IAAA,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,EAAC,KAAK,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAA;AACzE,CAAC,CAAC,CAAA;AAEFA,gBAAI,CAAC,sBAAsB,EAAE,gBAAgB,KAAqB,EAAE,GAAG,EAAA;IACrE,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,gCAAgC,EAAE,gBAAgB,KAAqB,EAAE,GAAG,EAAA;IAC/E,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;AAC7C,CAAC,CAAC,CAAA;AAEF;AACA;AAEAA,gBAAI,CAAC,6BAA6B,EAAE,gBAAgB,KAAqB,EAAA;AACvE,IAAA,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAE,CAAC,CAAC,CAA+B,CAAA;AACjG,IAAA,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;AAC/B,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,gDAAgD,EAAE,gBAAgB,KAAqB,EAAE,GAAG,EAAA;AAC/F,IAAA,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,6BAA6B,CAAE,CAAC,CAAC,CAA+B,CAAA;IACvG,MAAM,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;AACpC,CAAC,CAAC,CAAA;AAEF;AACA;AAEAE,gBAAI,CAAC,yBAAyB,EAAE,gBAAgB,KAAqB,EAAA;AACnE,IAAA,MAAM,KAAK,CAAC,UAAU,EAAE,CAAA;AAC1B,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,wCAAwC,EAAE,gBAAgB,KAAqB,EAAE,IAAW,EAAA;IAC/F,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;AAClC,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,gDAAgD,EAAE,gBAAgB,KAAqB,EAAE,UAAiB,EAAE,IAAW,EAAA;AAC1H,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5D,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;AACrC,CAAC,CAAC,CAAA;AACFA,gBAAI,CAAC,+DAA+D,EAAE,gBAAgB,KAAqB,EAAE,UAAiB,EAAE,IAAW,EAAE,IAAW,EAAA;AACtJ,IAAA,IAAI,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAA;IAC5D,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;AAC3C,CAAC,CAAC,CAAA;AAEF;AACA;AACAH,iBAAK,CAAC,qCAAqC,EAAE,gBAAgB,KAAqB,EAAE,cAAqB,EAAA;AACvG,IAAA,MAAM,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,CAAA;AAC7C,CAAC,CAAC,CAAA;AACFA,iBAAK,CAAC,4CAA4C,EAAE,gBAAgB,KAAqB,EAAE,KAAY,EAAE,MAAa,EAAA;AACpH,IAAA,MAAM,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;AACrD,CAAC,CAAC;;"}
|
package/dist/actions.steps.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export {};
|
package/dist/actions.steps.mjs
CHANGED
|
@@ -1,65 +1,59 @@
|
|
|
1
1
|
import { Given, When, Then } from 'quickpickle';
|
|
2
2
|
import { expect } from '@playwright/test';
|
|
3
|
-
import { getLocator, setValue, sanitizeFilepath, defaultScreenshotPath } from './helpers.mjs';
|
|
4
|
-
import path from 'node:path';
|
|
5
|
-
import url from 'node:url';
|
|
6
3
|
|
|
7
|
-
const projectRoot = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), '..');
|
|
8
4
|
// ================
|
|
9
5
|
// Navigation
|
|
10
6
|
Given('I am on {string}', async function (world, path) {
|
|
11
7
|
let url = new URL(path, world.baseUrl);
|
|
12
|
-
await world.page.goto(url.href);
|
|
8
|
+
await world.page.goto(url.href, { timeout: world.worldConfig.stepTimeout });
|
|
13
9
|
});
|
|
14
10
|
When(`I visit {string}`, async function (world, path) {
|
|
15
11
|
let url = new URL(path, world.baseUrl);
|
|
16
|
-
await world.page.goto(url.href);
|
|
12
|
+
await world.page.goto(url.href, { timeout: world.worldConfig.stepTimeout });
|
|
17
13
|
});
|
|
18
14
|
When(`I navigate/go to {string}`, async function (world, path) {
|
|
19
15
|
let url = new URL(path, world.baseUrl);
|
|
20
|
-
await world.page.goto(url.href);
|
|
16
|
+
await world.page.goto(url.href, { timeout: world.worldConfig.stepTimeout });
|
|
21
17
|
});
|
|
22
18
|
When('I load the file {string}', async (world, path) => {
|
|
23
|
-
await world.page.goto(`file://${projectRoot}/${path}
|
|
19
|
+
await world.page.goto(`file://${world.projectRoot}/${path}`, { timeout: world.worldConfig.stepTimeout });
|
|
24
20
|
});
|
|
25
21
|
When('I go back/forward/forwards', async function (world) {
|
|
26
22
|
let direction = world.info.step?.match(/(back|forwards?)$/)[0];
|
|
27
23
|
if (direction === 'back')
|
|
28
|
-
await world.page.goBack();
|
|
24
|
+
await world.page.goBack({ timeout: world.worldConfig.stepTimeout });
|
|
29
25
|
else
|
|
30
|
-
await world.page.goForward();
|
|
26
|
+
await world.page.goForward({ timeout: world.worldConfig.stepTimeout });
|
|
31
27
|
});
|
|
32
28
|
// ================
|
|
33
29
|
// Interaction
|
|
34
30
|
When('I click/press/tap/touch (on ){string}', async function (world, identifier) {
|
|
35
31
|
let locator = world.page.getByText(identifier, { exact: true });
|
|
36
|
-
await
|
|
37
|
-
await locator.click();
|
|
32
|
+
await locator.click({ timeout: world.worldConfig.stepTimeout });
|
|
38
33
|
});
|
|
39
34
|
When('I click/press/tap/touch (on )the {string} {word}', async function (world, identifier, role) {
|
|
40
|
-
let locator =
|
|
41
|
-
await
|
|
42
|
-
await locator.click();
|
|
35
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
36
|
+
await locator.click({ timeout: world.worldConfig.stepTimeout });
|
|
43
37
|
});
|
|
44
38
|
When('I focus/select/activate (on ){string}', async function (world, identifier) {
|
|
45
39
|
let locator = await world.page.getByText(identifier, { exact: true });
|
|
46
|
-
await
|
|
47
|
-
await locator.
|
|
40
|
+
await locator.focus({ timeout: world.worldConfig.stepTimeout });
|
|
41
|
+
await expect(locator).toBeFocused();
|
|
48
42
|
});
|
|
49
43
|
When('I focus/select/activate (on )the {string} {word}', async function (world, identifier, role) {
|
|
50
|
-
let locator =
|
|
51
|
-
await
|
|
52
|
-
await locator.
|
|
44
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
45
|
+
await locator.focus({ timeout: world.worldConfig.stepTimeout });
|
|
46
|
+
await expect(locator).toBeFocused();
|
|
53
47
|
});
|
|
54
48
|
// ================
|
|
55
49
|
// Typing
|
|
56
50
|
When("for/in/on (the ){string} I type {string}", async function (world, identifier, value) {
|
|
57
|
-
let locator =
|
|
58
|
-
await locator.pressSequentially(value);
|
|
51
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
52
|
+
await locator.pressSequentially(value, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
59
53
|
});
|
|
60
54
|
When("for/in/on (the ){string} {word} I type {string}", async function (world, identifier, role, value) {
|
|
61
|
-
let locator =
|
|
62
|
-
await locator.pressSequentially(value);
|
|
55
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
56
|
+
await locator.pressSequentially(value, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
63
57
|
});
|
|
64
58
|
When('I type the following keys: {}', async function (world, keys) {
|
|
65
59
|
let keyPresses = keys.split(' ');
|
|
@@ -67,32 +61,32 @@ When('I type the following keys: {}', async function (world, keys) {
|
|
|
67
61
|
await world.page.keyboard.press(key, { delay: world.worldConfig.keyboardDelay });
|
|
68
62
|
});
|
|
69
63
|
When("for/in/on (the ){string} I type the following keys: {}", async function (world, identifier, keys) {
|
|
70
|
-
let locator =
|
|
64
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
71
65
|
for (let key of keys)
|
|
72
|
-
await locator.press(key, { delay: world.worldConfig.keyboardDelay });
|
|
66
|
+
await locator.press(key, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
73
67
|
});
|
|
74
68
|
When("for/in/on (the ){string} {word} I type the following keys: {}", async function (world, identifier, role, keys) {
|
|
75
|
-
let locator =
|
|
69
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
76
70
|
for (let key of keys)
|
|
77
|
-
await locator.press(key, { delay: world.worldConfig.keyboardDelay });
|
|
71
|
+
await locator.press(key, { delay: world.worldConfig.keyboardDelay, timeout: world.worldConfig.stepTimeout });
|
|
78
72
|
});
|
|
79
73
|
// ================
|
|
80
74
|
// Forms
|
|
81
75
|
When("for/in/on (the ){string} I enter/fill/select (in ){string}", async function (world, identifier, value) {
|
|
82
|
-
let locator =
|
|
83
|
-
await setValue(locator, value);
|
|
76
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
77
|
+
await world.setValue(locator, value);
|
|
84
78
|
});
|
|
85
79
|
When("for/in/on (the ){string} {word} I enter/fill/select (in ){string}", async function (world, identifier, role, value) {
|
|
86
|
-
let locator =
|
|
87
|
-
await setValue(locator, value);
|
|
80
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
81
|
+
await world.setValue(locator, value);
|
|
88
82
|
});
|
|
89
83
|
When("for/in/on (the ){string} I enter/fill/select (in )the following( text):", async function (world, identifier, value) {
|
|
90
|
-
let locator =
|
|
91
|
-
await setValue(locator, value.toString());
|
|
84
|
+
let locator = world.getLocator(world.page, identifier, 'input');
|
|
85
|
+
await world.setValue(locator, value.toString());
|
|
92
86
|
});
|
|
93
87
|
When("for/in/on (the ){string} {word} I enter/fill/select (in )the following( text):", async function (world, identifier, role, value) {
|
|
94
|
-
let locator =
|
|
95
|
-
await setValue(locator, value.toString());
|
|
88
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
89
|
+
await world.setValue(locator, value.toString());
|
|
96
90
|
});
|
|
97
91
|
When('I enter/fill (in )the following( fields):', async function (world, table) {
|
|
98
92
|
let rows = table.raw();
|
|
@@ -103,71 +97,61 @@ When('I enter/fill (in )the following( fields):', async function (world, table)
|
|
|
103
97
|
value = role;
|
|
104
98
|
role = 'input';
|
|
105
99
|
}
|
|
106
|
-
let locator =
|
|
107
|
-
await setValue(locator, value);
|
|
100
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
101
|
+
await world.setValue(locator, value);
|
|
108
102
|
}
|
|
109
103
|
});
|
|
110
104
|
When('I check (the ){string}( radio)( checkbox)( box)', async function (world, indentifier) {
|
|
111
|
-
let locator =
|
|
112
|
-
await
|
|
105
|
+
let locator = world.getLocator(world.page, indentifier, 'input');
|
|
106
|
+
await world.setValue(locator, 'on');
|
|
113
107
|
});
|
|
114
108
|
When('I uncheck (the ){string}( checkbox)( box)', async function (world, indentifier) {
|
|
115
|
-
let locator =
|
|
116
|
-
await
|
|
109
|
+
let locator = world.getLocator(world.page, indentifier, 'input');
|
|
110
|
+
await world.setValue(locator, 'off');
|
|
117
111
|
});
|
|
118
112
|
// ================
|
|
119
113
|
// Waiting
|
|
120
114
|
When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, text) {
|
|
121
115
|
let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
|
|
122
116
|
let locator = world.page.getByText(text);
|
|
123
|
-
await locator.waitFor({ state, timeout:
|
|
117
|
+
await locator.waitFor({ state, timeout: world.worldConfig.stepTimeout });
|
|
124
118
|
});
|
|
125
119
|
When('I wait for a/an/the {string} {word} to be attached/detatched/visible/hidden', async function (world, identifier, role) {
|
|
126
120
|
let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
|
|
127
|
-
let locator =
|
|
128
|
-
await locator.waitFor({ state, timeout:
|
|
121
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
122
|
+
await locator.waitFor({ state, timeout: world.worldConfig.stepTimeout });
|
|
129
123
|
});
|
|
130
|
-
When('I wait for {int}ms', async function (world, num) {
|
|
124
|
+
When('I wait (for ){int}ms', async function (world, num) {
|
|
131
125
|
await world.page.waitForTimeout(num);
|
|
132
126
|
});
|
|
127
|
+
When('I wait (for ){float} second(s)', async function (world, num) {
|
|
128
|
+
await world.page.waitForTimeout(num * 1000);
|
|
129
|
+
});
|
|
133
130
|
// ================
|
|
134
131
|
// Scrolling
|
|
135
132
|
When('I scroll down/up/left/right', async function (world) {
|
|
136
133
|
let direction = world.info.step?.match(/(down|up|left|right)$/)[0];
|
|
137
|
-
|
|
138
|
-
let horiz = direction.includes('t');
|
|
139
|
-
if (horiz)
|
|
140
|
-
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
141
|
-
await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
|
|
134
|
+
await world.scroll(direction);
|
|
142
135
|
});
|
|
143
136
|
When('I scroll down/up/left/right {int}(px)( pixels)', async function (world, num) {
|
|
144
137
|
let direction = world.info.step?.match(/(down|up|left|right)(?= \d)/)[0];
|
|
145
|
-
|
|
146
|
-
if (horiz)
|
|
147
|
-
await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
|
|
148
|
-
await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
|
|
138
|
+
await world.scroll(direction, num);
|
|
149
139
|
});
|
|
150
140
|
// ================
|
|
151
141
|
// Screenshots
|
|
152
142
|
Then('(I )take (a )screenshot', async function (world) {
|
|
153
|
-
|
|
154
|
-
await world.page.screenshot({ path });
|
|
143
|
+
await world.screenshot();
|
|
155
144
|
});
|
|
156
145
|
Then('(I )take (a )screenshot named {string}', async function (world, name) {
|
|
157
|
-
|
|
158
|
-
let path = sanitizeFilepath(`${projectRoot}/${world.worldConfig.screenshotDir}/${name}${explodedTags}.png`);
|
|
159
|
-
await world.page.screenshot({ path });
|
|
146
|
+
await world.screenshot({ name });
|
|
160
147
|
});
|
|
161
148
|
Then('(I )take (a )screenshot of the {string} {word}', async function (world, identifier, role) {
|
|
162
|
-
let locator =
|
|
163
|
-
|
|
164
|
-
await locator.screenshot({ path });
|
|
149
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
150
|
+
await world.screenshot({ locator });
|
|
165
151
|
});
|
|
166
152
|
Then('(I )take (a )screenshot of the {string} {word} named {string}', async function (world, identifier, role, name) {
|
|
167
|
-
let locator =
|
|
168
|
-
|
|
169
|
-
let path = sanitizeFilepath(`${projectRoot}/${world.worldConfig.screenshotDir}/${name}${explodedTags}.png`);
|
|
170
|
-
await locator.screenshot({ path });
|
|
153
|
+
let locator = world.getLocator(world.page, identifier, role);
|
|
154
|
+
await world.screenshot({ locator, name });
|
|
171
155
|
});
|
|
172
156
|
// ================
|
|
173
157
|
// Browser size
|
|
@@ -177,6 +161,4 @@ Given('the browser size is (set to ){word}', async function (world, browserSizeT
|
|
|
177
161
|
Given('the browser size is (set to ){int} x {int}', async function (world, width, height) {
|
|
178
162
|
await world.page.setViewportSize({ width, height });
|
|
179
163
|
});
|
|
180
|
-
|
|
181
|
-
export { projectRoot };
|
|
182
164
|
//# sourceMappingURL=actions.steps.mjs.map
|
|
@@ -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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"}
|