@atomicsmash/test-utils 4.0.0 → 5.0.0-beta.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/index.d.ts CHANGED
@@ -26,7 +26,7 @@ export declare const playwrightConfig: {
26
26
  reporter: "github" | "dot";
27
27
  use: {
28
28
  actionTimeout: number;
29
- trace: "on-first-retry";
29
+ trace: "retain-on-failure";
30
30
  };
31
31
  snapshotDir: string;
32
32
  snapshotPathTemplate: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,IAAI,EACJ,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAWpD,MAAM,MAAM,iBAAiB,GAC1B,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,aAAa,CAAC;AACjB,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,cAAc,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAC/D,MAAM,MAAM,QAAQ,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,QAAQ,CAAC;CAChC,EAAE,CAAC;AAEJ,wBAAgB,iCAAiC,CAChD,QAAQ,EAAE,iBAAiB,GAAG,mBAAmB,EACjD,qBAAqB,EAAE,iBAAiB,GAAG,mBAAmB,GAC5D,OAAO,CAiDT;AAED,MAAM,MAAM,wBAAwB,GAAG,CACtC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,EACxB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAkBG,CAAC;AAEjC,eAAO,MAAM,cAAc;UAElB,MAAM;aAAW,OAAO;EAqB/B,CAAC;AAEH,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnE,eAAO,MAAM,gBAAgB,EAAE,CAC9B,UAAU,EAAE;IACX,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,EACD,IAAI,EAAE,SAAS,GAAG,QAAQ,EAC1B,gBAAgB,CAAC,EAAE,OAAO,KACtB,sBAkCH,CAAC;AAEH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,IAAI,EACV,EACC,QAAQ,EACR,QAAQ,GACR,GAAE;IACF,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC5B,iBAiCN;AAED,eAAO,MAAM,oBAAoB,gBAClB,QAAQ,gBACL;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,kBAO9B,CAAC;AACH,eAAO,MAAM,kBAAkB,gBAChB,QAAQ,gBACL;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,kBAO9B,CAAC;AAEH,wBAAgB,OAAO,CAAC,eAAe,EAAE,MAAM,UAU9C;AAED,wBAAgB,8BAA8B,CAC7C,WAAW,EAAE,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,2HAqDlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,IAAI,EACJ,OAAO,EACP,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAWpD,MAAM,MAAM,iBAAiB,GAC1B,iBAAiB,GACjB,YAAY,GACZ,aAAa,GACb,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,aAAa,CAAC;AACjB,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,cAAc,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAC/D,MAAM,MAAM,QAAQ,GAAG;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,QAAQ,CAAC;CAChC,EAAE,CAAC;AAEJ,wBAAgB,iCAAiC,CAChD,QAAQ,EAAE,iBAAiB,GAAG,mBAAmB,EACjD,qBAAqB,EAAE,iBAAiB,GAAG,mBAAmB,GAC5D,OAAO,CAiDT;AAED,MAAM,MAAM,wBAAwB,GAAG,CACtC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,EACxB,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,KAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;CAaG,CAAC;AAEjC,eAAO,MAAM,cAAc;UAElB,MAAM;aAAW,OAAO;EAqB/B,CAAC;AAEH,KAAK,sBAAsB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnE,eAAO,MAAM,gBAAgB,EAAE,CAC9B,UAAU,EAAE;IACX,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,EACD,IAAI,EAAE,SAAS,GAAG,QAAQ,EAC1B,gBAAgB,CAAC,EAAE,OAAO,KACtB,sBAgCH,CAAC;AAEH,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,IAAI,EACV,EACC,QAAQ,EACR,QAAQ,GACR,GAAE;IACF,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAC5B,iBAiCN;AAED,eAAO,MAAM,oBAAoB,gBAClB,QAAQ,gBACL;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,kBAkB9B,CAAC;AACH,eAAO,MAAM,kBAAkB,gBAChB,QAAQ,gBACL;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,kBAO9B,CAAC;AAEH,wBAAgB,OAAO,CAAC,eAAe,EAAE,MAAM,UAU9C;AAED,wBAAgB,8BAA8B,CAC7C,WAAW,EAAE,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,2HAkDlE"}
package/dist/index.js CHANGED
@@ -54,18 +54,13 @@ export function doesRoleHaveHighEnoughPermissions(userRole, minimumRolePermissio
54
54
  export const playwrightConfig = {
55
55
  testDir: "./tests/e2e",
56
56
  timeout: 30 * 1000,
57
- expect: {
58
- timeout: 10 * 1000,
59
- },
57
+ expect: { timeout: 10 * 1000 },
60
58
  fullyParallel: true,
61
59
  forbidOnly: !!process.env.CI,
62
60
  retries: process.env.CI ? 2 : 0,
63
61
  workers: process.env.CI ? 1 : undefined,
64
62
  reporter: process.env.CI ? "github" : "dot",
65
- use: {
66
- actionTimeout: 0,
67
- trace: "on-first-retry",
68
- },
63
+ use: { actionTimeout: 0, trace: "retain-on-failure" },
69
64
  snapshotDir: "./screenshots",
70
65
  snapshotPathTemplate: "{snapshotDir}/{platform}/{testFileName}-snapshots/{arg}{ext}",
71
66
  };
@@ -103,9 +98,7 @@ export const doLighthouseTest = (pageToTest, type, disableAuditLogs = false) =>
103
98
  seo: 85,
104
99
  },
105
100
  reports: {
106
- formats: {
107
- html: true,
108
- },
101
+ formats: { html: true },
109
102
  directory: "lighthouse/latest-lighthouse-report",
110
103
  name: `${pageToTest.slug ?? slugify(pageToTest.name)}-${type}`,
111
104
  },
@@ -148,7 +141,17 @@ export const checkPrivilegedPages = (pagesToTest) => async ({ page }) => {
148
141
  const response = await page.goto(pageToTest.url);
149
142
  expect(response).not.toBeNull();
150
143
  const nonNullResponse = response;
151
- expect(nonNullResponse.status()).toBe(401);
144
+ const isResponseCode401 = nonNullResponse.status() === 401;
145
+ if (isResponseCode401) {
146
+ continue;
147
+ }
148
+ const hasURLChangedToLoginPage = page.url().includes("login") || page.url().includes("wp-login");
149
+ if (!hasURLChangedToLoginPage) {
150
+ const loginElement = page
151
+ .getByRole("textbox", { name: /Username|Password/ }) //Don't use email here as there may be newsletter sign ups.
152
+ .or(page.getByRole("button", { name: /Login|Log in|Sign in/i }));
153
+ await expect(loginElement).toBeVisible();
154
+ }
152
155
  }
153
156
  };
154
157
  export const checkForLoremIpsum = (pagesToTest) => async ({ page }) => {
@@ -211,10 +214,7 @@ export function generateProjectsForAllBrowsers(baseProject) {
211
214
  projects.push({
212
215
  ...baseProject,
213
216
  name: `${baseProject.name}__${browser.name}`,
214
- use: {
215
- ...baseProject.use,
216
- ...browser.use,
217
- },
217
+ use: { ...baseProject.use, ...browser.use },
218
218
  grepInvert: [
219
219
  ...[baseProject.grepInvert].flat(1),
220
220
  ...[browser.grepInvert].flat(1),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atomicsmash/test-utils",
3
- "version": "4.0.0",
3
+ "version": "5.0.0-beta.1",
4
4
  "type": "module",
5
5
  "description": "A collection of helper functions for automated testing with Playwright.",
6
6
  "keywords": [