@code.pops/js-test-tools 1.0.4 → 1.1.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/README.md CHANGED
@@ -1,7 +1,47 @@
1
1
  # jsTestTools
2
2
 
3
- A collection of wrapper functions around common javascript test frameworks. Support for Playwright currently, but more to come.
3
+ A collection of wrapper functions around common javascript test frameworks.
4
4
 
5
- ## Who to contact
5
+ In many cases it purely wraps existing test functions or methods, resulting in a less verbose consumer pattern. Additional group methods are included on top of existing Playwright functionality however.
6
6
 
7
- Send an email to: [copepops](mailto:codepops@mailbox.org)
7
+ _For example:_
8
+
9
+ - Group function to select and click one or more buttons with a single invocation.
10
+ - Group function to locate and return `innerText` values for multiple id-fetched locators, in a typed object
11
+ - A function that accepts an array of Playwright instructions that can be awaited with a single `await`
12
+
13
+ ## Installation
14
+
15
+ `npm install @code.pops/js-test-tools`
16
+
17
+ ## Usage
18
+
19
+ ```ts
20
+ import { jsTestToolsFactory } from "@code.pops/js-test-tools";
21
+
22
+ test("my test example", async ({ page }) => {
23
+ const { clickById, innerTextById } = jsTestToolsFactory(page);
24
+
25
+ await clickById("greetings-test-id").click();
26
+ const text = await innerTextById("test-canvas");
27
+
28
+ expect(text).toContain("Hello World!");
29
+ });
30
+ ```
31
+
32
+ ## Test Frameworks
33
+
34
+ ### Playwright
35
+
36
+ This library currently supports a subset of Playwright selectors (or commonly referred to as locators) and actions.
37
+
38
+ **Latest tested version:** 1.36.0
39
+
40
+ ## Roadmap
41
+
42
+ - Increase support for Playwright
43
+ - Add more test frameworks
44
+
45
+ ## Contributing
46
+
47
+ Contact the author for more.
@@ -0,0 +1,3 @@
1
+ import { AsyncFunctionTuple } from "./async-function-tuple";
2
+ export type ExecuteSequentiallyActions = Array<() => Promise<unknown>> | Array<AsyncFunctionTuple>;
3
+ //# sourceMappingURL=execute-sequentially-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-sequentially-actions.d.ts","sourceRoot":"","sources":["../src/execute-sequentially-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,MAAM,0BAA0B,GAAG,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=execute-sequentially-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-sequentially-actions.js","sourceRoot":"","sources":["../src/execute-sequentially-actions.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- type GetByRoleOptions = {
1
+ export type GetByRoleOptions = {
2
2
  checked?: boolean;
3
3
  disabled?: boolean;
4
4
  exact?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"get-by-role-options.d.ts","sourceRoot":"","sources":["../src/get-by-role-options.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"get-by-role-options.d.ts","sourceRoot":"","sources":["../src/get-by-role-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
2
3
  //# sourceMappingURL=get-by-role-options.js.map
@@ -0,0 +1,6 @@
1
+ export type GotoOptions = {
2
+ referer?: string;
3
+ timeout?: number;
4
+ waitUntil?: "load" | "domcontentloaded" | "networkidle" | "commit";
5
+ };
6
+ //# sourceMappingURL=goto-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goto-options.d.ts","sourceRoot":"","sources":["../src/goto-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC;CACpE,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=goto-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"goto-options.js","sourceRoot":"","sources":["../src/goto-options.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"js-test-tools.factory.d.ts","sourceRoot":"","sources":["../src/js-test-tools.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKnD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAyD1D"}
1
+ {"version":3,"file":"js-test-tools.factory.d.ts","sourceRoot":"","sources":["../src/js-test-tools.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAMnD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,WAAW,CAmD1D"}
@@ -6,7 +6,7 @@ function jsTestToolsFactory(page) {
6
6
  for (const locator of locators) {
7
7
  await clickById(locator);
8
8
  }
9
- }, innerTextById = (locator) => byId(locator).innerText(), innerTextByRole = (role, options) => byRole(role, options).innerText(), goto = (url) => page.goto(url), waitForTimeout = (timeout) => page.waitForTimeout(timeout), waitForResponse = (url) => page.waitForResponse(url), executeSequentially = async (actions) => {
9
+ }, innerTextById = (locator, options) => byId(locator).innerText(options), innerTextByRole = (role, options) => byRole(role, options).innerText(), goto = (url, options) => page.goto(url, options), waitForTimeout = (timeout) => page.waitForTimeout(timeout), waitForResponse = (urlOrPredicate, options) => page.waitForResponse(urlOrPredicate, options), executeSequentially = async (actions) => {
10
10
  for (const action of actions) {
11
11
  if (typeof action === "function")
12
12
  await action();
@@ -36,7 +36,7 @@ function jsTestToolsFactory(page) {
36
36
  innerTextByRole,
37
37
  multipleInnerTextById,
38
38
  waitForResponse,
39
- waitForTimeout,
39
+ waitForTimeout
40
40
  };
41
41
  }
42
42
  //# sourceMappingURL=js-test-tools.factory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-test-tools.factory.js","sourceRoot":"","sources":["../src/js-test-tools.factory.ts"],"names":[],"mappings":";;AAMA,gDAyDC;AAzDD,SAAgB,kBAAkB,CAAC,IAAU;IAC3C,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EACzD,MAAM,GAAG,CAAC,IAAW,EAAE,OAA0B,EAAE,EAAE,CACnD,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EAC/B,SAAS,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EACtD,WAAW,GAAG,CAAC,IAAW,EAAE,OAA0B,EAAE,EAAE,CACxD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAC/B,iBAAiB,GAAG,KAAK,EAAE,QAAkB,EAAE,EAAE;QAC/C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAC9D,eAAe,GAAG,CAAC,IAAW,EAAE,OAA0B,EAAE,EAAE,CAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,EACnC,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EACtC,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAClE,eAAe,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAC5D,mBAAmB,GAAG,KAAK,EACzB,OAAkE,EAClE,EAAE;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAE,MAAM,MAAM,EAAE,CAAC;iBAC5C,CAAC;gBACJ,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;gBAC7B,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEJ,KAAK,UAAU,qBAAqB,CAClC,QAAsB;QAEtB,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAsB,CAAC;IAChC,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,SAAS;QACT,WAAW;QACX,iBAAiB;QACjB,mBAAmB;QACnB,IAAI;QACJ,aAAa;QACb,eAAe;QACf,qBAAqB;QACrB,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"js-test-tools.factory.js","sourceRoot":"","sources":["../src/js-test-tools.factory.ts"],"names":[],"mappings":";;AASA,gDAmDC;AAnDD,SAAgB,kBAAkB,CAAC,IAAU;IAC3C,MAAM,IAAI,GAAG,CAAC,OAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAClE,MAAM,GAAG,CAAC,IAAW,EAAE,OAA0B,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,EACnF,SAAS,GAAG,CAAC,OAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAC/D,WAAW,GAAG,CAAC,IAAW,EAAE,OAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EACxF,iBAAiB,GAAG,KAAK,EAAE,QAA6B,EAAE,EAAE;QAC1D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,EACD,aAAa,GAAG,CAAC,OAAwB,EAAE,OAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,EAC9G,eAAe,GAAG,CAAC,IAAW,EAAE,OAA0B,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,EAAE,EAChG,IAAI,GAAG,CAAC,GAAW,EAAE,OAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EACtE,cAAc,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAClE,eAAe,GAAG,CAAC,cAAoC,EAAE,OAA6B,EAAE,EAAE,CACxF,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,EAC/C,mBAAmB,GAAG,KAAK,EAAE,OAAmC,EAAE,EAAE;QAClE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,OAAO,MAAM,KAAK,UAAU;gBAAE,MAAM,MAAM,EAAE,CAAC;iBAC5C,CAAC;gBACJ,MAAM,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;gBAC7B,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEJ,KAAK,UAAU,qBAAqB,CAAmB,QAAsB;QAC3E,MAAM,MAAM,GAA2B,EAAE,CAAC;QAE1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YAC1E,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,MAAsB,CAAC;IAChC,CAAC;IAED,OAAO;QACL,IAAI;QACJ,MAAM;QACN,SAAS;QACT,WAAW;QACX,iBAAiB;QACjB,mBAAmB;QACnB,IAAI;QACJ,aAAa;QACb,eAAe;QACf,qBAAqB;QACrB,eAAe;QACf,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -1,19 +1,120 @@
1
1
  import { Locator, Response } from "@playwright/test";
2
- import { Roles } from "./roles";
3
- import { AsyncFunctionTuple } from "./async-function-tuple";
2
+ import { ExecuteSequentiallyActions } from "./execute-sequentially-actions";
3
+ import { GetByRoleOptions } from "./get-by-role-options";
4
+ import { GotoOptions } from "./goto-options";
4
5
  import { InnerText } from "./inner-text";
6
+ import { Roles } from "./roles";
7
+ import { WaitForResponseInput } from "./wait-for-response-input";
5
8
  export type jsTestTools = {
6
- byId: (locator: string) => Locator;
9
+ /**
10
+ * Wraps the Playwright `Page.getByTestId` method
11
+ * @param locator The test id to locate
12
+ * @returns Playwright Locator for the given test id
13
+ */
14
+ byId: (locator: string | RegExp) => Locator;
15
+ /**
16
+ * Wraps the Playwright `Page.getByRole` method
17
+ * @param role The HTML Element role
18
+ * @param options Narrow down locator selection with Playwright's `GetByRoleOptions` options
19
+ * @returns Playwright Locator for the given role
20
+ */
7
21
  byRole: (role: Roles, options?: GetByRoleOptions) => Locator;
8
- clickById: (locator: string) => Promise<void>;
22
+ /**
23
+ * Wraps the Playwright `Page.getByTestId` method accompanied by a click action
24
+ * @param locator The test id to click
25
+ * @returns Awaiter
26
+ */
27
+ clickById: (locator: string | RegExp) => Promise<void>;
28
+ /**
29
+ * Wraps the Playwright `Page.getByRole` method accompanied by a click action
30
+ * @param role The HTML Element role to click
31
+ * @param [options] Narrow down locator selection with Playwright's `Page.getByRole` options
32
+ * @returns Awaiter
33
+ */
9
34
  clickByRole: (role: Roles, options?: GetByRoleOptions) => Promise<void>;
10
- clickMultipleById: (locators: string[]) => Promise<void>;
11
- executeSequentially: (actions: Array<() => Promise<unknown>> | Array<AsyncFunctionTuple>) => Promise<void>;
12
- goto: (url: string) => Promise<Response | null>;
13
- innerTextById: (locator: string) => Promise<string>;
35
+ /**
36
+ * Wraps the Playwright `Page.getByTestId` method accompanied by a click action for multiple elements
37
+ * @param locators The test ids to click
38
+ * @returns Awaiter
39
+ */
40
+ clickMultipleById: (locators: (string | RegExp)[]) => Promise<void>;
41
+ /**
42
+ * Executes an array of functions sequentially, awaiting each one. Functions can be either direct invocations of JsTestTools methods or Playwright methods, or wrapped in a function to allow for custom logic.
43
+ *
44
+ * It takes two different array item types:
45
+ *
46
+ * 1. An array of callbacks that each return a Promise`.
47
+ *
48
+ * _For example:_
49
+ *
50
+ * ```ts
51
+ * [
52
+ * () => clickById("submit-button"),
53
+ * () => waitForResponse("/api/submit"),
54
+ * ]
55
+ * ```
56
+ *
57
+ * 2. An array of tuples of which arguments 2 and more represent the function arguments to pass during invocation and the first being the function to invoke.
58
+ *
59
+ * _For example:_
60
+ *
61
+ * ```ts
62
+ * [
63
+ * ['clickById', "submit-button"],
64
+ * ['waitForResponse', "/api/submit"],
65
+ * ]
66
+ * ```
67
+ *
68
+ * @param actions An array of JsTestTools (or Playwright) function invocations
69
+ * @returns Awaiter
70
+ */
71
+ executeSequentially: (actions: ExecuteSequentiallyActions) => Promise<void>;
72
+ /**
73
+ * Wraps the Playwright `Page.goto` method
74
+ * @param url The URL to navigate to
75
+ * @param [options] Playwright's `Page.goto` options
76
+ * @returns A promise that resolves to the main resource response, or `null` if the response is not available
77
+ */
78
+ goto: (url: string, options?: GotoOptions) => Promise<Response | null>;
79
+ /**
80
+ * Wraps the Playwright `Page.getByTestId` method accompanied by a call to `innerText()`
81
+ * @param locator The test id to locate
82
+ * @param [options] Playwright's `Locator.innerText` options
83
+ * @returns A promise that resolves to the inner text of the element
84
+ */
85
+ innerTextById: (locator: string | RegExp, options?: {
86
+ timeout?: number;
87
+ }) => Promise<string>;
88
+ /**
89
+ * Wraps the Playwright `Page.getByRole` method accompanied by a call to `innerText()`
90
+ * @param role The HTML Element role to locate
91
+ * @param [options] Narrow down locator selection with Playwright's `Page.getByRole` options
92
+ * @returns A promise that resolves to the inner text of the element
93
+ */
14
94
  innerTextByRole: (role: Roles, options?: GetByRoleOptions) => Promise<string>;
95
+ /**
96
+ * Returns the `innerText` of multiple elements located by their test ids
97
+ * @param locators An array of test ids (string-only) to locate
98
+ * @returns A promise that resolves to a typed object matching camelCased locator string
99
+ */
15
100
  multipleInnerTextById<T extends string>(locators: readonly T[]): Promise<InnerText<T>>;
101
+ /**
102
+ * Wraps the Playwright `Page.waitForResponse` method
103
+ * @param urlOrPredicate Url string or predicate function to match the response
104
+ * @param options Playwright's `Page.waitForResponse` options
105
+ * @returns A promise that resolves to the matched response
106
+ */
107
+ waitForResponse: (urlOrPredicate: WaitForResponseInput, options: {
108
+ timeout?: number;
109
+ }) => Promise<Response>;
110
+ /**
111
+ * Wraps the Playwright `Page.waitForTimeout` method
112
+ *
113
+ * Playwright instructs to use this method cautiously and to prefer other waiting methods that are more deterministic.
114
+ *
115
+ * @param timeout Time to wait in milliseconds
116
+ * @returns Awaiter
117
+ */
16
118
  waitForTimeout: (timeout: number) => Promise<void>;
17
- waitForResponse: (url: string) => Promise<Response>;
18
119
  };
19
120
  //# sourceMappingURL=js-test-tools.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"js-test-tools.type.d.ts","sourceRoot":"","sources":["../src/js-test-tools.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAC7D,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,iBAAiB,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,mBAAmB,EAAE,CACnB,OAAO,EAAE,KAAK,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,KAC/D,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAChD,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9E,qBAAqB,CAAC,CAAC,SAAS,MAAM,EACpC,QAAQ,EAAE,SAAS,CAAC,EAAE,GACrB,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD,eAAe,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACrD,CAAC"}
1
+ {"version":3,"file":"js-test-tools.type.d.ts","sourceRoot":"","sources":["../src/js-test-tools.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,MAAM,WAAW,GAAG;IACxB;;;;OAIG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC;IAE5C;;;;;OAKG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAE7D;;;;OAIG;IACH,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvD;;;;;OAKG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;;;OAIG;IACH,iBAAiB,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,mBAAmB,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5E;;;;;OAKG;IACH,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAEvE;;;;;OAKG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7F;;;;;OAKG;IACH,eAAe,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9E;;;;OAIG;IACH,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvF;;;;;OAKG;IACH,eAAe,EAAE,CAAC,cAAc,EAAE,oBAAoB,EAAE,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE5G;;;;;;;OAOG;IACH,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Response } from "@playwright/test";
2
+ export type WaitForResponseInput = string | RegExp | ((response: Response) => boolean | Promise<boolean>);
3
+ //# sourceMappingURL=wait-for-response-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-response-input.d.ts","sourceRoot":"","sources":["../src/wait-for-response-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=wait-for-response-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait-for-response-input.js","sourceRoot":"","sources":["../src/wait-for-response-input.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@code.pops/js-test-tools",
3
- "version": "1.0.4",
3
+ "version": "1.1.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -15,8 +15,10 @@
15
15
  "author": "codePops <codepops@mailbox.org>",
16
16
  "license": "ISC",
17
17
  "description": "A collection of wrapper functions around common javascript test frameworks. Support for Playwright currently, but more to come.",
18
+ "peerDependencies": {
19
+ "@playwright/test": "^1.36.0"
20
+ },
18
21
  "devDependencies": {
19
- "@playwright/test": "^1.58.2",
20
22
  "eslint-plugin-playwright": "^2.8.0",
21
23
  "typescript": "^5.9.3"
22
24
  }