@quickpickle/playwright 0.9.6 → 0.9.8

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.
@@ -1,11 +1,15 @@
1
1
  'use strict';
2
2
 
3
3
  var quickpickle = require('quickpickle');
4
+ var test = require('@playwright/test');
5
+ var helpers = require('./helpers.cjs');
4
6
  var path = require('node:path');
5
7
  var url = require('node:url');
6
8
 
7
9
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
8
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
+ // ================
12
+ // Navigation
9
13
  quickpickle.Given('I am on {string}', async function (world, path) {
10
14
  let url = new URL(path, world.baseUrl);
11
15
  await world.page.goto(url.href);
@@ -21,63 +25,116 @@ quickpickle.When(`I navigate/go to {string}`, async function (world, path) {
21
25
  quickpickle.When('I load the file {string}', async (world, path) => {
22
26
  await world.page.goto(`file://${projectRoot}/${path}`);
23
27
  });
28
+ quickpickle.When('I go back/forward/forwards', async function (world) {
29
+ let direction = world.info.step?.match(/(back|forwards?)$/)[0];
30
+ if (direction === 'back')
31
+ await world.page.goBack();
32
+ else
33
+ await world.page.goForward();
34
+ });
35
+ // ================
36
+ // Interaction
24
37
  quickpickle.When('I click/press/tap/touch (on ){string}', async function (world, identifier) {
25
- await world.page.getByText(identifier, { exact: true }).click();
38
+ let locator = world.page.getByText(identifier, { exact: true });
39
+ await test.expect(locator).toBeVisible({ timeout: 1000 });
40
+ await locator.click();
26
41
  });
27
42
  quickpickle.When('I click/press/tap/touch (on )the {string} {word}', async function (world, identifier, role) {
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 });
43
+ let locator = await helpers.getLocator(world.page, identifier, role);
44
+ await test.expect(locator).toBeVisible({ timeout: 1000 });
33
45
  await locator.click();
34
46
  });
35
47
  quickpickle.When('I focus/select/activate (on ){string}', async function (world, identifier) {
36
- let locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
48
+ let locator = await world.page.getByText(identifier, { exact: true });
49
+ await test.expect(locator).toBeVisible({ timeout: 1000 });
37
50
  await locator.focus();
38
51
  });
39
52
  quickpickle.When('I focus/select/activate (on )the {string} {word}', async function (world, identifier, role) {
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 });
53
+ let locator = await helpers.getLocator(world.page, identifier, role);
54
+ await test.expect(locator).toBeVisible({ timeout: 1000 });
45
55
  await locator.focus();
46
56
  });
47
- quickpickle.When("for (the ){string} I enter/fill (in ){string}", async function (world, identifier, text) {
48
- let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
49
- await locator.fill(text);
57
+ // ================
58
+ // Typing
59
+ quickpickle.When("for/in/on (the ){string} I type {string}", async function (world, identifier, value) {
60
+ let locator = await helpers.getLocator(world.page, identifier, 'input');
61
+ await locator.pressSequentially(value);
62
+ });
63
+ quickpickle.When("for/in/on (the ){string} {word} I type {string}", async function (world, identifier, role, value) {
64
+ let locator = await helpers.getLocator(world.page, identifier, role);
65
+ await locator.pressSequentially(value);
66
+ });
67
+ quickpickle.When('I type the following keys: {}', async function (world, keys) {
68
+ let keyPresses = keys.split(' ');
69
+ for (let key of keyPresses)
70
+ await world.page.keyboard.press(key, { delay: world.playwrightConfig.keyboardDelay });
71
+ });
72
+ quickpickle.When("for/in/on (the ){string} I type the following keys: {}", async function (world, identifier, keys) {
73
+ let locator = await helpers.getLocator(world.page, identifier, 'input');
74
+ for (let key of keys)
75
+ await locator.press(key, { delay: world.playwrightConfig.keyboardDelay });
76
+ });
77
+ quickpickle.When("for/in/on (the ){string} {word} I type the following keys: {}", async function (world, identifier, role, keys) {
78
+ let locator = await helpers.getLocator(world.page, identifier, role);
79
+ for (let key of keys)
80
+ await locator.press(key, { delay: world.playwrightConfig.keyboardDelay });
81
+ });
82
+ // ================
83
+ // Forms
84
+ quickpickle.When("for/in/on (the ){string} I enter/fill/select (in ){string}", async function (world, identifier, value) {
85
+ let locator = await helpers.getLocator(world.page, identifier, 'input');
86
+ await helpers.setValue(locator, value);
87
+ });
88
+ quickpickle.When("for/in/on (the ){string} {word} I enter/fill/select (in ){string}", async function (world, identifier, role, value) {
89
+ let locator = await helpers.getLocator(world.page, identifier, role);
90
+ await helpers.setValue(locator, value);
91
+ });
92
+ quickpickle.When("for/in/on (the ){string} I enter/fill/select (in )the following( text):", async function (world, identifier, value) {
93
+ let locator = await helpers.getLocator(world.page, identifier, 'input');
94
+ await helpers.setValue(locator, value.toString());
50
95
  });
51
- quickpickle.When("for (the ){string} I enter/fill (in )the following( text):", async function (world, identifier, text) {
52
- let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
53
- await locator.fill(text);
96
+ 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 = await helpers.getLocator(world.page, identifier, role);
98
+ await helpers.setValue(locator, value.toString());
54
99
  });
55
100
  quickpickle.When('I enter/fill (in )the following( fields):', async function (world, table) {
101
+ let rows = table.raw();
102
+ let hasRole = rows[0].length === 3;
56
103
  for (let row of table.raw()) {
57
- let [identifier, text] = row;
58
- let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
59
- let tag = await locator.evaluate(e => e.tagName.toLowerCase());
60
- let type = await locator.getAttribute('type');
61
- if (tag === 'select') {
62
- await locator.selectOption(text);
63
- }
64
- else if (type === 'checkbox' || type === 'radio') {
65
- let checked = (['', 'false', 'no', 'unchecked', 'null', 'undefined', '0']).includes(text.toLowerCase()) ? false : true;
66
- await locator.setChecked(checked);
67
- }
68
- else {
69
- await locator.fill(text);
104
+ let [identifier, role, value] = row;
105
+ if (!hasRole) {
106
+ value = role;
107
+ role = 'input';
70
108
  }
109
+ let locator = await helpers.getLocator(world.page, identifier, role);
110
+ await helpers.setValue(locator, value);
71
111
  }
72
112
  });
73
- quickpickle.When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, identifier) {
113
+ quickpickle.When('I check (the ){string}( radio)( checkbox)( box)', async function (world, indentifier) {
114
+ let locator = await helpers.getLocator(world.page, indentifier, 'input');
115
+ await locator.check();
116
+ });
117
+ quickpickle.When('I uncheck (the ){string}( checkbox)( box)', async function (world, indentifier) {
118
+ let locator = await helpers.getLocator(world.page, indentifier, 'input');
119
+ await locator.uncheck();
120
+ });
121
+ // ================
122
+ // Waiting
123
+ quickpickle.When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, text) {
74
124
  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));
76
- await locator.waitFor({ state });
125
+ let locator = world.page.getByText(text);
126
+ await locator.waitFor({ state, timeout: 5000 });
127
+ });
128
+ quickpickle.When('I wait for a/an/the {string} {word} to be attached/detatched/visible/hidden', async function (world, identifier, role) {
129
+ let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
130
+ let locator = await helpers.getLocator(world.page, identifier, role);
131
+ await locator.waitFor({ state, timeout: 5000 });
77
132
  });
78
133
  quickpickle.When('I wait for {int}ms', async function (world, num) {
79
134
  await world.page.waitForTimeout(num);
80
135
  });
136
+ // ================
137
+ // Scrolling
81
138
  quickpickle.When('I scroll down/up/left/right', async function (world) {
82
139
  let direction = world.info.step?.match(/(down|up|left|right)$/)[0];
83
140
  let num = 100;
@@ -93,24 +150,24 @@ quickpickle.When('I scroll down/up/left/right {int}(px)( pixels)', async functio
93
150
  await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
94
151
  await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
95
152
  });
96
- quickpickle.When('I type the following keys: {}', async function (world, keys) {
97
- let keyPresses = keys.split(' ');
98
- for (let key of keyPresses) {
99
- await world.page.keyboard.press(key);
100
- }
101
- });
102
- quickpickle.When('I go back/forwards?', async function (world) {
103
- let direction = world.info.step?.match(/(back|forwards?)$/)[0];
104
- if (direction === 'back')
105
- await world.page.goBack();
106
- else
107
- await world.page.goForward();
108
- });
153
+ // ================
154
+ // Screenshots
109
155
  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, '/') });
156
+ let path = helpers.sanitizeFilepath(`${projectRoot}/${helpers.defaultScreenshotPath(world)}`);
157
+ await world.page.screenshot({ path });
111
158
  });
112
159
  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, '/') });
160
+ let explodedTags = world.info.explodedIdx ? `_(${world.info.tags.join(',')})` : '';
161
+ let path = helpers.sanitizeFilepath(`${projectRoot}/${world.playwrightConfig.screenshotDir}/${name}${explodedTags}.png`);
162
+ await world.page.screenshot({ path });
163
+ });
164
+ // ================
165
+ // Browser size
166
+ quickpickle.Given('the browser size is (set to ){word}', async function (world, browserSizeTag) {
167
+ await world.setViewportSize(browserSizeTag);
168
+ });
169
+ quickpickle.Given('the browser size is (set to ){int} x {int}', async function (world, width, height) {
170
+ await world.page.setViewportSize({ width, height });
114
171
  });
115
172
 
116
173
  exports.projectRoot = projectRoot;
@@ -1 +1 @@
1
- {"version":3,"file":"actions.steps.cjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":["Given","When","Then"],"mappings":"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"}
1
+ {"version":3,"file":"actions.steps.cjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":["Given","When","expect","getLocator","setValue","Then","sanitizeFilepath","defaultScreenshotPath"],"mappings":"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"}
@@ -1,8 +1,12 @@
1
1
  import { Given, When, Then } from 'quickpickle';
2
+ import { expect } from '@playwright/test';
3
+ import { getLocator, setValue, sanitizeFilepath, defaultScreenshotPath } from './helpers.mjs';
2
4
  import path from 'node:path';
3
5
  import url from 'node:url';
4
6
 
5
7
  const projectRoot = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), '..');
8
+ // ================
9
+ // Navigation
6
10
  Given('I am on {string}', async function (world, path) {
7
11
  let url = new URL(path, world.baseUrl);
8
12
  await world.page.goto(url.href);
@@ -18,63 +22,116 @@ When(`I navigate/go to {string}`, async function (world, path) {
18
22
  When('I load the file {string}', async (world, path) => {
19
23
  await world.page.goto(`file://${projectRoot}/${path}`);
20
24
  });
25
+ When('I go back/forward/forwards', async function (world) {
26
+ let direction = world.info.step?.match(/(back|forwards?)$/)[0];
27
+ if (direction === 'back')
28
+ await world.page.goBack();
29
+ else
30
+ await world.page.goForward();
31
+ });
32
+ // ================
33
+ // Interaction
21
34
  When('I click/press/tap/touch (on ){string}', async function (world, identifier) {
22
- await world.page.getByText(identifier, { exact: true }).click();
35
+ let locator = world.page.getByText(identifier, { exact: true });
36
+ await expect(locator).toBeVisible({ timeout: 1000 });
37
+ await locator.click();
23
38
  });
24
39
  When('I click/press/tap/touch (on )the {string} {word}', async function (world, identifier, role) {
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 });
40
+ let locator = await getLocator(world.page, identifier, role);
41
+ await expect(locator).toBeVisible({ timeout: 1000 });
30
42
  await locator.click();
31
43
  });
32
44
  When('I focus/select/activate (on ){string}', async function (world, identifier) {
33
- let locator = await world.page.getByText(identifier, { exact: true }).or(world.page.locator(identifier));
45
+ let locator = await world.page.getByText(identifier, { exact: true });
46
+ await expect(locator).toBeVisible({ timeout: 1000 });
34
47
  await locator.focus();
35
48
  });
36
49
  When('I focus/select/activate (on )the {string} {word}', async function (world, identifier, role) {
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 });
50
+ let locator = await getLocator(world.page, identifier, role);
51
+ await expect(locator).toBeVisible({ timeout: 1000 });
42
52
  await locator.focus();
43
53
  });
44
- When("for (the ){string} I enter/fill (in ){string}", async function (world, identifier, text) {
45
- let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
46
- await locator.fill(text);
54
+ // ================
55
+ // Typing
56
+ When("for/in/on (the ){string} I type {string}", async function (world, identifier, value) {
57
+ let locator = await getLocator(world.page, identifier, 'input');
58
+ await locator.pressSequentially(value);
59
+ });
60
+ When("for/in/on (the ){string} {word} I type {string}", async function (world, identifier, role, value) {
61
+ let locator = await getLocator(world.page, identifier, role);
62
+ await locator.pressSequentially(value);
63
+ });
64
+ When('I type the following keys: {}', async function (world, keys) {
65
+ let keyPresses = keys.split(' ');
66
+ for (let key of keyPresses)
67
+ await world.page.keyboard.press(key, { delay: world.playwrightConfig.keyboardDelay });
68
+ });
69
+ When("for/in/on (the ){string} I type the following keys: {}", async function (world, identifier, keys) {
70
+ let locator = await getLocator(world.page, identifier, 'input');
71
+ for (let key of keys)
72
+ await locator.press(key, { delay: world.playwrightConfig.keyboardDelay });
73
+ });
74
+ When("for/in/on (the ){string} {word} I type the following keys: {}", async function (world, identifier, role, keys) {
75
+ let locator = await getLocator(world.page, identifier, role);
76
+ for (let key of keys)
77
+ await locator.press(key, { delay: world.playwrightConfig.keyboardDelay });
78
+ });
79
+ // ================
80
+ // Forms
81
+ When("for/in/on (the ){string} I enter/fill/select (in ){string}", async function (world, identifier, value) {
82
+ let locator = await getLocator(world.page, identifier, 'input');
83
+ await setValue(locator, value);
84
+ });
85
+ When("for/in/on (the ){string} {word} I enter/fill/select (in ){string}", async function (world, identifier, role, value) {
86
+ let locator = await getLocator(world.page, identifier, role);
87
+ await setValue(locator, value);
88
+ });
89
+ When("for/in/on (the ){string} I enter/fill/select (in )the following( text):", async function (world, identifier, value) {
90
+ let locator = await getLocator(world.page, identifier, 'input');
91
+ await setValue(locator, value.toString());
47
92
  });
48
- When("for (the ){string} I enter/fill (in )the following( text):", async function (world, identifier, text) {
49
- let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
50
- await locator.fill(text);
93
+ When("for/in/on (the ){string} {word} I enter/fill/select (in )the following( text):", async function (world, identifier, role, value) {
94
+ let locator = await getLocator(world.page, identifier, role);
95
+ await setValue(locator, value.toString());
51
96
  });
52
97
  When('I enter/fill (in )the following( fields):', async function (world, table) {
98
+ let rows = table.raw();
99
+ let hasRole = rows[0].length === 3;
53
100
  for (let row of table.raw()) {
54
- let [identifier, text] = row;
55
- let locator = await world.page.getByLabel(identifier).or(world.page.getByPlaceholder(identifier)).or(world.page.locator(identifier));
56
- let tag = await locator.evaluate(e => e.tagName.toLowerCase());
57
- let type = await locator.getAttribute('type');
58
- if (tag === 'select') {
59
- await locator.selectOption(text);
60
- }
61
- else if (type === 'checkbox' || type === 'radio') {
62
- let checked = (['', 'false', 'no', 'unchecked', 'null', 'undefined', '0']).includes(text.toLowerCase()) ? false : true;
63
- await locator.setChecked(checked);
64
- }
65
- else {
66
- await locator.fill(text);
101
+ let [identifier, role, value] = row;
102
+ if (!hasRole) {
103
+ value = role;
104
+ role = 'input';
67
105
  }
106
+ let locator = await getLocator(world.page, identifier, role);
107
+ await setValue(locator, value);
68
108
  }
69
109
  });
70
- When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, identifier) {
110
+ When('I check (the ){string}( radio)( checkbox)( box)', async function (world, indentifier) {
111
+ let locator = await getLocator(world.page, indentifier, 'input');
112
+ await locator.check();
113
+ });
114
+ When('I uncheck (the ){string}( checkbox)( box)', async function (world, indentifier) {
115
+ let locator = await getLocator(world.page, indentifier, 'input');
116
+ await locator.uncheck();
117
+ });
118
+ // ================
119
+ // Waiting
120
+ When('I wait for {string} to be attached/detatched/visible/hidden', async function (world, text) {
71
121
  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));
73
- await locator.waitFor({ state });
122
+ let locator = world.page.getByText(text);
123
+ await locator.waitFor({ state, timeout: 5000 });
124
+ });
125
+ When('I wait for a/an/the {string} {word} to be attached/detatched/visible/hidden', async function (world, identifier, role) {
126
+ let state = world.info.step?.match(/(attached|detatched|visible|hidden)$/)[0];
127
+ let locator = await getLocator(world.page, identifier, role);
128
+ await locator.waitFor({ state, timeout: 5000 });
74
129
  });
75
130
  When('I wait for {int}ms', async function (world, num) {
76
131
  await world.page.waitForTimeout(num);
77
132
  });
133
+ // ================
134
+ // Scrolling
78
135
  When('I scroll down/up/left/right', async function (world) {
79
136
  let direction = world.info.step?.match(/(down|up|left|right)$/)[0];
80
137
  let num = 100;
@@ -90,24 +147,24 @@ When('I scroll down/up/left/right {int}(px)( pixels)', async function (world, nu
90
147
  await world.page.mouse.wheel(direction === 'right' ? num : -num, 0);
91
148
  await world.page.mouse.wheel(0, direction === 'down' ? num : -num);
92
149
  });
93
- When('I type the following keys: {}', async function (world, keys) {
94
- let keyPresses = keys.split(' ');
95
- for (let key of keyPresses) {
96
- await world.page.keyboard.press(key);
97
- }
98
- });
99
- When('I go back/forwards?', async function (world) {
100
- let direction = world.info.step?.match(/(back|forwards?)$/)[0];
101
- if (direction === 'back')
102
- await world.page.goBack();
103
- else
104
- await world.page.goForward();
105
- });
150
+ // ================
151
+ // Screenshots
106
152
  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, '/') });
153
+ let path = sanitizeFilepath(`${projectRoot}/${defaultScreenshotPath(world)}`);
154
+ await world.page.screenshot({ path });
108
155
  });
109
156
  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, '/') });
157
+ let explodedTags = world.info.explodedIdx ? `_(${world.info.tags.join(',')})` : '';
158
+ let path = sanitizeFilepath(`${projectRoot}/${world.playwrightConfig.screenshotDir}/${name}${explodedTags}.png`);
159
+ await world.page.screenshot({ path });
160
+ });
161
+ // ================
162
+ // Browser size
163
+ Given('the browser size is (set to ){word}', async function (world, browserSizeTag) {
164
+ await world.setViewportSize(browserSizeTag);
165
+ });
166
+ Given('the browser size is (set to ){int} x {int}', async function (world, width, height) {
167
+ await world.page.setViewportSize({ width, height });
111
168
  });
112
169
 
113
170
  export { projectRoot };
@@ -1 +1 @@
1
- {"version":3,"file":"actions.steps.mjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.steps.mjs","sources":["../src/actions.steps.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ // Locator helper function
4
+ async function getLocator(el, identifier, role, text = null) {
5
+ let locator;
6
+ if (role === 'element')
7
+ locator = await el.locator(identifier);
8
+ else if (role === 'input')
9
+ locator = await el.getByLabel(identifier).or(el.getByPlaceholder(identifier));
10
+ else
11
+ locator = await el.getByRole(role, { name: identifier });
12
+ if (text)
13
+ return await locator.filter({ hasText: text });
14
+ return locator;
15
+ }
16
+ async function setValue(locator, value) {
17
+ let { tag, type, role } = await locator.evaluate((el) => ({ tag: el.tagName.toLowerCase(), type: el.getAttribute('type')?.toLowerCase(), role: el.getAttribute('role')?.toLowerCase() }));
18
+ if (tag === 'select') {
19
+ let values = value.split(/\s*(?<!\\),\s*/).map((v) => v.replace(/\\,/g, ','));
20
+ await locator.selectOption(values);
21
+ }
22
+ else if (type === 'checkbox' || type === 'radio' || role === 'checkbox') {
23
+ let check = !(['false', 'no', 'unchecked', '', 'null', 'undefined', '0'].includes(value.toString().toLowerCase()));
24
+ if (check)
25
+ await locator.check();
26
+ else
27
+ await locator.uncheck();
28
+ }
29
+ else {
30
+ await locator.fill(value);
31
+ }
32
+ }
33
+ async function testMetatag(page, name, expected, exact) {
34
+ let actual;
35
+ if (name === 'title')
36
+ actual = await page.title();
37
+ else
38
+ actual = await (await page.locator(`meta[name="${name}"]`)).getAttribute('content');
39
+ return exact ? actual === expected : actual?.includes(expected);
40
+ }
41
+ function sanitizeFilepath(filepath) {
42
+ return filepath.replace(/\/\/+/g, '/').replace(/\/[\.~]+\//g, '/');
43
+ }
44
+ function defaultScreenshotPath(world) {
45
+ return `${world.playwrightConfig.screenshotDir}/${world.toString().replace(/^.+?Feature: /, 'Feature: ').replace(' ' + world.info.step, '')}.png`;
46
+ }
47
+
48
+ exports.defaultScreenshotPath = defaultScreenshotPath;
49
+ exports.getLocator = getLocator;
50
+ exports.sanitizeFilepath = sanitizeFilepath;
51
+ exports.setValue = setValue;
52
+ exports.testMetatag = testMetatag;
53
+ //# sourceMappingURL=helpers.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Locator, Page } from "playwright-core";
2
+ import { PlaywrightWorld } from "./PlaywrightWorld";
3
+ export declare function getLocator(el: Locator | Page, identifier: string, role: string, text?: string | null): Promise<Locator>;
4
+ export declare function setValue(locator: Locator, value: string | any): Promise<void>;
5
+ export declare function testMetatag(page: Page, name: string, expected: string, exact: boolean): Promise<boolean | undefined>;
6
+ export declare function sanitizeFilepath(filepath: string): string;
7
+ export declare function defaultScreenshotPath(world: PlaywrightWorld): string;