@quickpickle/playwright 1.0.0 → 1.2.0

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 CHANGED
@@ -118,6 +118,7 @@ export default {
118
118
  // General quickpickle configuration
119
119
  explodeTags: [
120
120
  ['nojs','js'],
121
+ ['dark','light'],
121
122
  ['chromium','firefox','webkit'],
122
123
  ['mobile','tablet','desktop','widescreen'],
123
124
  ],
@@ -140,6 +141,7 @@ export default {
140
141
  // General quickpickle configuration
141
142
  explodeTags: [
142
143
  ['nojs','js'],
144
+ ['dark','light'],
143
145
  ['chromium','firefox','webkit'],
144
146
  ['mobile','tablet','desktop','widescreen'],
145
147
  ],
@@ -165,6 +167,8 @@ export type PlaywrightWorldConfigSetting = Partial<{
165
167
  nojsTags: string|string[] // tags for scenarios to run without javascript (default: @nojs, @noscript)
166
168
  showBrowserTags: string|string[] // tags for scenarios to run with browser visible (default: @browser, @show-browser, @showbrowser)
167
169
  slowMoTags: string|string[] // tags for scenarios to be run with slow motion enabled (default: @slowmo)
170
+ darkModeTags: string|string[] // tags for scenarios to run in dark mode (default: @dark)
171
+ lightModeTags: string|string[] // tags for scenarios to run in light mode (default: @light)
168
172
  headless: boolean // whether to run the browser in headless mode (default true)
169
173
  slowMo: boolean|number // whether to run the browser with slow motion enabled (default false)
170
174
  slowMoMs: number // the number of milliseconds to slow down the browser by (default 500)
@@ -173,6 +177,7 @@ export type PlaywrightWorldConfigSetting = Partial<{
173
177
  browserSizes: Record<string,string> // the default browser sizes to use, in the form "widthxheight"
174
178
  // (default: { mobile: "480x640", tablet: "1024x768", desktop: "1920x1080", widescreen: "3440x1440" })
175
179
  defaultBrowserSize: string // the default browser size to use (default: desktop)
180
+ accessibilityExcludes: string|string[] // any elements to exclude from accessibility testing
176
181
  }>
177
182
  ```
178
183
 
@@ -14,9 +14,11 @@ const defaultPlaywrightWorldConfig = {
14
14
  nojsTags: ['@nojs', '@noscript'],
15
15
  showBrowserTags: ['@browser', '@show-browser', '@showbrowser'],
16
16
  slowMoTags: ['@slowmo'],
17
+ darkModeTags: ['@dark'],
18
+ lightModeTags: ['@light'],
17
19
  headless: true,
18
20
  slowMo: false,
19
- slowMoMs: 500,
21
+ slowMoMs: 100,
20
22
  keyboardDelay: 20,
21
23
  defaultBrowser: 'chromium',
22
24
  browserSizes: {
@@ -25,8 +27,9 @@ const defaultPlaywrightWorldConfig = {
25
27
  desktop: '1920x1080',
26
28
  widescreen: '3440x1440',
27
29
  },
28
- defaultBrowserSize: 'desktop',
29
- stepTimeout: 5000,
30
+ defaultBrowserSize: 'mobile',
31
+ defaultTimeout: 1000,
32
+ navigationTimeout: 3000,
30
33
  };
31
34
  class PlaywrightWorld extends quickpickle.VisualWorld {
32
35
  constructor(context, info) {
@@ -34,6 +37,10 @@ class PlaywrightWorld extends quickpickle.VisualWorld {
34
37
  this.identities = new Map();
35
38
  this._identity = 'default';
36
39
  this.setConfig(info.config.worldConfig);
40
+ // Handle deprecated stepTimeout and timeout
41
+ if (info.config.worldConfig.stepTimeout && !info.config.worldConfig.defaultTimeout) {
42
+ info.config.worldConfig.defaultTimeout = info.config.worldConfig.stepTimeout;
43
+ }
37
44
  }
38
45
  async init() {
39
46
  await super.init();
@@ -61,10 +68,16 @@ class PlaywrightWorld extends quickpickle.VisualWorld {
61
68
  serviceWorkers: 'block',
62
69
  javaScriptEnabled: this.tagsMatch(this.worldConfig.nojsTags) ? false : true,
63
70
  });
71
+ // Set default timeouts on the context
72
+ context.setDefaultTimeout(this.worldConfig.actionTimeout || this.worldConfig.defaultTimeout);
73
+ context.setDefaultNavigationTimeout(this.worldConfig.navigationTimeout || this.worldConfig.defaultTimeout);
64
74
  let page = await context.newPage();
75
+ if (this.tagsMatch(this.worldConfig.darkModeTags)) {
76
+ await page.emulateMedia({ colorScheme: 'dark' });
77
+ }
65
78
  if (name !== 'default') {
66
79
  let url = this.identities.get('default').page.url();
67
- await page.goto(url, { timeout: this.worldConfig.stepTimeout });
80
+ await page.goto(url);
68
81
  }
69
82
  this.identities.set(name, {
70
83
  context,
@@ -100,6 +113,10 @@ class PlaywrightWorld extends quickpickle.VisualWorld {
100
113
  newConfig.slowMoMs = newConfig.slowMo;
101
114
  newConfig.slowMo = newConfig.slowMoMs > 0;
102
115
  }
116
+ // Migrate deprecated timeout properties to defaultTimeout
117
+ if (newConfig.stepTimeout && !newConfig.defaultTimeout) {
118
+ newConfig.defaultTimeout = newConfig.stepTimeout;
119
+ }
103
120
  this.info.config.worldConfig = newConfig;
104
121
  }
105
122
  async setViewportSize(size) {
@@ -137,7 +154,7 @@ class PlaywrightWorld extends quickpickle.VisualWorld {
137
154
  this.identities = new Map();
138
155
  await this.newIdentity('default');
139
156
  this.identity = 'default';
140
- await this.page.goto(url, { timeout: this.worldConfig.stepTimeout });
157
+ await this.page.goto(url);
141
158
  }
142
159
  async close() {
143
160
  await this.browser.close();
@@ -166,6 +183,8 @@ class PlaywrightWorld extends quickpickle.VisualWorld {
166
183
  */
167
184
  getLocator(el, identifier, role, text = null) {
168
185
  let locator;
186
+ if (!quickpickle.isAriaRoleExtended(role))
187
+ throw new Error(`Invalid ARIA role: ${role}`);
169
188
  if (role === 'element')
170
189
  locator = el.locator(identifier);
171
190
  else if (role === 'input')
@@ -188,22 +207,22 @@ class PlaywrightWorld extends quickpickle.VisualWorld {
188
207
  * @returns Promise<void>
189
208
  */
190
209
  async setValue(locator, value) {
191
- let { tag, type, role } = await locator.evaluate((el) => ({ tag: el.tagName.toLowerCase(), type: el.getAttribute('type')?.toLowerCase(), role: el.getAttribute('role')?.toLowerCase() }), undefined, { timeout: this.worldConfig.stepTimeout });
210
+ let { tag, type, role } = await locator.evaluate((el) => ({ tag: el.tagName.toLowerCase(), type: el.getAttribute('type')?.toLowerCase(), role: el.getAttribute('role')?.toLowerCase() }), undefined, { timeout: this.worldConfig.actionTimeout || this.worldConfig.defaultTimeout });
192
211
  if (!tag)
193
212
  throw new Error(`Could not find element with locator: ${locator.toString()}`);
194
213
  if (tag === 'select') {
195
214
  let values = value.split(/\s*(?<!\\),\s*/).map((v) => v.replace(/\\,/g, ','));
196
- await locator.selectOption(values, { timeout: this.worldConfig.stepTimeout });
215
+ await locator.selectOption(values);
197
216
  }
198
217
  else if (type === 'checkbox' || type === 'radio' || role === 'checkbox') {
199
218
  let check = !(['false', 'no', 'unchecked', '', 'null', 'undefined', '0'].includes(value.toString().toLowerCase()));
200
219
  if (check)
201
- await locator.check({ timeout: this.worldConfig.stepTimeout });
220
+ await locator.check();
202
221
  else
203
- await locator.uncheck({ timeout: this.worldConfig.stepTimeout });
222
+ await locator.uncheck();
204
223
  }
205
224
  else {
206
- await locator.fill(value, { timeout: this.worldConfig.stepTimeout });
225
+ await locator.fill(value);
207
226
  }
208
227
  }
209
228
  /**
@@ -264,9 +283,9 @@ class PlaywrightWorld extends quickpickle.VisualWorld {
264
283
  let visibleText = toBeVisible ? 'true' : '';
265
284
  try {
266
285
  if (toBePresent)
267
- await test.expect(locator.locator(`visible=${visibleText}`).first()).toBeAttached({ timeout: this.worldConfig.stepTimeout });
286
+ await test.expect(locator.locator(`visible=${visibleText}`).first()).toBeAttached();
268
287
  else
269
- await test.expect(locator.locator(`visible=${visibleText}`)).toHaveCount(0, { timeout: this.worldConfig.stepTimeout });
288
+ await test.expect(locator.locator(`visible=${visibleText}`)).toHaveCount(0);
270
289
  }
271
290
  catch (e) {
272
291
  throw new Error(`The${toBeVisible ? '' : ' hidden'} element "${locator}" was unexpectedly ${toBePresent ? 'not present' : 'present'}.`);
@@ -1 +1 @@
1
- {"version":3,"file":"PlaywrightWorld.cjs","sources":["../src/PlaywrightWorld.ts"],"sourcesContent":[null],"names":["chromium","firefox","webkit","VisualWorld","normalizeTags","expect","fs","After"],"mappings":"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"}
1
+ {"version":3,"file":"PlaywrightWorld.cjs","sources":["../src/PlaywrightWorld.ts"],"sourcesContent":[null],"names":["chromium","firefox","webkit","VisualWorld","normalizeTags","isAriaRoleExtended","expect","fs","After"],"mappings":"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"}
@@ -5,21 +5,112 @@ import { InfoConstructor } from 'quickpickle/dist/world';
5
5
  import { Buffer } from 'buffer';
6
6
  import { ScreenshotSetting } from './snapshotMatcher';
7
7
  export type PlaywrightWorldConfigSetting = Partial<{
8
+ /**
9
+ * The host to connect to.
10
+ * @default http://localhost
11
+ */
8
12
  host: string;
13
+ /**
14
+ * The port to connect to.
15
+ * @default undefined
16
+ */
9
17
  port: number;
18
+ /**
19
+ * The directory in which to save screenshots.
20
+ * @default "screenshots"
21
+ */
10
22
  screenshotDir: string;
23
+ /**
24
+ * Options for the default screenshot comparisons.
25
+ * @default undefined
26
+ */
11
27
  screenshotOptions?: ScreenshotSetting;
28
+ /**
29
+ * Tags for scenarios to run without javascript.
30
+ * @default ["@nojs","@noscript"]
31
+ */
12
32
  nojsTags: string | string[];
33
+ /**
34
+ * Tags for scenarios to run with browser visible.
35
+ * @default ["@browser","@show-browser","@showbrowser"]
36
+ */
13
37
  showBrowserTags: string | string[];
38
+ /**
39
+ * Tags for scenarios to be run with slow motion enabled.
40
+ * @default ["@slowmo"]
41
+ */
14
42
  slowMoTags: string | string[];
43
+ /**
44
+ * Tags for scenarios to run with dark mode enabled.
45
+ * @default ["@dark"]
46
+ */
47
+ darkModeTags: string | string[];
48
+ /**
49
+ * Tags for scenarios to run with light mode enabled.
50
+ * @default ["@light"]
51
+ */
52
+ lightModeTags: string | string[];
53
+ /**
54
+ * Whether to run the browser in headless mode.
55
+ * @default true
56
+ */
15
57
  headless: boolean;
58
+ /**
59
+ * Whether to run the browser with slow motion enabled.
60
+ * @default false
61
+ */
16
62
  slowMo: boolean | number;
63
+ /**
64
+ * The number of milliseconds to slow down the browser by.
65
+ * @default 500
66
+ */
17
67
  slowMoMs: number;
68
+ /**
69
+ * The number of milliseconds between key presses.
70
+ * @default 20
71
+ */
18
72
  keyboardDelay: number;
73
+ /**
74
+ * The default browser to use.
75
+ * @default "chromium"
76
+ */
19
77
  defaultBrowser: 'chromium' | 'firefox' | 'webkit';
78
+ /**
79
+ * The default browser sizes to use, in the form "widthxheight".
80
+ * @default {mobile:"480x640",tablet:"1024x768",desktop:"1920x1080",widescreen:"3440x1440"}
81
+ */
20
82
  browserSizes: Record<string, string>;
83
+ /**
84
+ * The default browser size to use.
85
+ * @default "desktop"
86
+ */
21
87
  defaultBrowserSize: string;
88
+ /**
89
+ * @deprecated alias for defaultTimeout.
90
+ */
22
91
  stepTimeout: number;
92
+ /**
93
+ * The default timeout in milliseconds for all methods that accept a timeout option.
94
+ * This should always be lower than the QuickPickle stepTimeout, or After functions may fail to run.
95
+ * @default 1000
96
+ */
97
+ defaultTimeout: number;
98
+ /**
99
+ * The default timeout in milliseconds for actions like click, fill, etc.
100
+ * If 0 or not set, uses defaultTimeout.
101
+ */
102
+ actionTimeout: number;
103
+ /**
104
+ * The default timeout in milliseconds for navigation actions like goto, reload, etc.
105
+ * If 0 or not set, uses defaultTimeout.
106
+ * @default 3000
107
+ */
108
+ navigationTimeout: number;
109
+ /**
110
+ * Elements to exclude during accessibility tests.
111
+ * @default []
112
+ */
113
+ accessibilityExcludes: string | string[];
23
114
  }>;
24
115
  export declare const defaultPlaywrightWorldConfig: {
25
116
  host: string;
@@ -27,6 +118,8 @@ export declare const defaultPlaywrightWorldConfig: {
27
118
  nojsTags: string[];
28
119
  showBrowserTags: string[];
29
120
  slowMoTags: string[];
121
+ darkModeTags: string[];
122
+ lightModeTags: string[];
30
123
  headless: boolean;
31
124
  slowMo: boolean;
32
125
  slowMoMs: number;
@@ -39,11 +132,13 @@ export declare const defaultPlaywrightWorldConfig: {
39
132
  widescreen: string;
40
133
  };
41
134
  defaultBrowserSize: string;
42
- stepTimeout: number;
135
+ defaultTimeout: number;
136
+ navigationTimeout: number;
43
137
  };
44
138
  export type PlaywrightWorldConfig = typeof defaultPlaywrightWorldConfig & {
45
139
  port?: number;
46
140
  browserSizes: Record<string, string>;
141
+ accessibilityExcludes: string | string[];
47
142
  };
48
143
  export type BrowserMap = {
49
144
  context: BrowserContext;
@@ -88,7 +183,7 @@ export declare class PlaywrightWorld extends VisualWorld implements VisualWorldI
88
183
  * @param text Optional text to match inside the locator
89
184
  * @returns Promise<void>
90
185
  */
91
- getLocator(el: Locator | Page, identifier: string, role: AriaRoleExtended, text?: string | null): Locator;
186
+ getLocator(el: Locator | Page, identifier: string, role: AriaRoleExtended | string, text?: string | null): Locator;
92
187
  /**
93
188
  * Sets a value on a form element based on its type (select, checkbox/radio, or other input)
94
189
  * @example setValue(locator, "Option 1, Option 2") => Selects multiple options in a select element
@@ -1,5 +1,5 @@
1
1
  import { webkit, firefox, chromium } from 'playwright';
2
- import { After, VisualWorld, normalizeTags } from 'quickpickle';
2
+ import { After, VisualWorld, normalizeTags, isAriaRoleExtended } from 'quickpickle';
3
3
  import { defaultsDeep, cloneDeep } from 'lodash-es';
4
4
  import { promises } from 'node:fs';
5
5
  import { expect } from '@playwright/test';
@@ -11,9 +11,11 @@ const defaultPlaywrightWorldConfig = {
11
11
  nojsTags: ['@nojs', '@noscript'],
12
12
  showBrowserTags: ['@browser', '@show-browser', '@showbrowser'],
13
13
  slowMoTags: ['@slowmo'],
14
+ darkModeTags: ['@dark'],
15
+ lightModeTags: ['@light'],
14
16
  headless: true,
15
17
  slowMo: false,
16
- slowMoMs: 500,
18
+ slowMoMs: 100,
17
19
  keyboardDelay: 20,
18
20
  defaultBrowser: 'chromium',
19
21
  browserSizes: {
@@ -22,8 +24,9 @@ const defaultPlaywrightWorldConfig = {
22
24
  desktop: '1920x1080',
23
25
  widescreen: '3440x1440',
24
26
  },
25
- defaultBrowserSize: 'desktop',
26
- stepTimeout: 5000,
27
+ defaultBrowserSize: 'mobile',
28
+ defaultTimeout: 1000,
29
+ navigationTimeout: 3000,
27
30
  };
28
31
  class PlaywrightWorld extends VisualWorld {
29
32
  constructor(context, info) {
@@ -31,6 +34,10 @@ class PlaywrightWorld extends VisualWorld {
31
34
  this.identities = new Map();
32
35
  this._identity = 'default';
33
36
  this.setConfig(info.config.worldConfig);
37
+ // Handle deprecated stepTimeout and timeout
38
+ if (info.config.worldConfig.stepTimeout && !info.config.worldConfig.defaultTimeout) {
39
+ info.config.worldConfig.defaultTimeout = info.config.worldConfig.stepTimeout;
40
+ }
34
41
  }
35
42
  async init() {
36
43
  await super.init();
@@ -58,10 +65,16 @@ class PlaywrightWorld extends VisualWorld {
58
65
  serviceWorkers: 'block',
59
66
  javaScriptEnabled: this.tagsMatch(this.worldConfig.nojsTags) ? false : true,
60
67
  });
68
+ // Set default timeouts on the context
69
+ context.setDefaultTimeout(this.worldConfig.actionTimeout || this.worldConfig.defaultTimeout);
70
+ context.setDefaultNavigationTimeout(this.worldConfig.navigationTimeout || this.worldConfig.defaultTimeout);
61
71
  let page = await context.newPage();
72
+ if (this.tagsMatch(this.worldConfig.darkModeTags)) {
73
+ await page.emulateMedia({ colorScheme: 'dark' });
74
+ }
62
75
  if (name !== 'default') {
63
76
  let url = this.identities.get('default').page.url();
64
- await page.goto(url, { timeout: this.worldConfig.stepTimeout });
77
+ await page.goto(url);
65
78
  }
66
79
  this.identities.set(name, {
67
80
  context,
@@ -97,6 +110,10 @@ class PlaywrightWorld extends VisualWorld {
97
110
  newConfig.slowMoMs = newConfig.slowMo;
98
111
  newConfig.slowMo = newConfig.slowMoMs > 0;
99
112
  }
113
+ // Migrate deprecated timeout properties to defaultTimeout
114
+ if (newConfig.stepTimeout && !newConfig.defaultTimeout) {
115
+ newConfig.defaultTimeout = newConfig.stepTimeout;
116
+ }
100
117
  this.info.config.worldConfig = newConfig;
101
118
  }
102
119
  async setViewportSize(size) {
@@ -134,7 +151,7 @@ class PlaywrightWorld extends VisualWorld {
134
151
  this.identities = new Map();
135
152
  await this.newIdentity('default');
136
153
  this.identity = 'default';
137
- await this.page.goto(url, { timeout: this.worldConfig.stepTimeout });
154
+ await this.page.goto(url);
138
155
  }
139
156
  async close() {
140
157
  await this.browser.close();
@@ -163,6 +180,8 @@ class PlaywrightWorld extends VisualWorld {
163
180
  */
164
181
  getLocator(el, identifier, role, text = null) {
165
182
  let locator;
183
+ if (!isAriaRoleExtended(role))
184
+ throw new Error(`Invalid ARIA role: ${role}`);
166
185
  if (role === 'element')
167
186
  locator = el.locator(identifier);
168
187
  else if (role === 'input')
@@ -185,22 +204,22 @@ class PlaywrightWorld extends VisualWorld {
185
204
  * @returns Promise<void>
186
205
  */
187
206
  async setValue(locator, value) {
188
- let { tag, type, role } = await locator.evaluate((el) => ({ tag: el.tagName.toLowerCase(), type: el.getAttribute('type')?.toLowerCase(), role: el.getAttribute('role')?.toLowerCase() }), undefined, { timeout: this.worldConfig.stepTimeout });
207
+ let { tag, type, role } = await locator.evaluate((el) => ({ tag: el.tagName.toLowerCase(), type: el.getAttribute('type')?.toLowerCase(), role: el.getAttribute('role')?.toLowerCase() }), undefined, { timeout: this.worldConfig.actionTimeout || this.worldConfig.defaultTimeout });
189
208
  if (!tag)
190
209
  throw new Error(`Could not find element with locator: ${locator.toString()}`);
191
210
  if (tag === 'select') {
192
211
  let values = value.split(/\s*(?<!\\),\s*/).map((v) => v.replace(/\\,/g, ','));
193
- await locator.selectOption(values, { timeout: this.worldConfig.stepTimeout });
212
+ await locator.selectOption(values);
194
213
  }
195
214
  else if (type === 'checkbox' || type === 'radio' || role === 'checkbox') {
196
215
  let check = !(['false', 'no', 'unchecked', '', 'null', 'undefined', '0'].includes(value.toString().toLowerCase()));
197
216
  if (check)
198
- await locator.check({ timeout: this.worldConfig.stepTimeout });
217
+ await locator.check();
199
218
  else
200
- await locator.uncheck({ timeout: this.worldConfig.stepTimeout });
219
+ await locator.uncheck();
201
220
  }
202
221
  else {
203
- await locator.fill(value, { timeout: this.worldConfig.stepTimeout });
222
+ await locator.fill(value);
204
223
  }
205
224
  }
206
225
  /**
@@ -261,9 +280,9 @@ class PlaywrightWorld extends VisualWorld {
261
280
  let visibleText = toBeVisible ? 'true' : '';
262
281
  try {
263
282
  if (toBePresent)
264
- await expect(locator.locator(`visible=${visibleText}`).first()).toBeAttached({ timeout: this.worldConfig.stepTimeout });
283
+ await expect(locator.locator(`visible=${visibleText}`).first()).toBeAttached();
265
284
  else
266
- await expect(locator.locator(`visible=${visibleText}`)).toHaveCount(0, { timeout: this.worldConfig.stepTimeout });
285
+ await expect(locator.locator(`visible=${visibleText}`)).toHaveCount(0);
267
286
  }
268
287
  catch (e) {
269
288
  throw new Error(`The${toBeVisible ? '' : ' hidden'} element "${locator}" was unexpectedly ${toBePresent ? 'not present' : 'present'}.`);