@vickbk/tests 0.0.0-stage → 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.cjs","names":["expect","expect","expect","patternToRegex","patternToRegex","test"],"sources":["../src/features/playwright/modules/assertions/utils/isChecked.ts","../src/features/playwright/modules/assertions/utils/isNotChecked.ts","../src/features/playwright/modules/assertions/utils/getMatcher.ts","../src/features/playwright/modules/assertions/utils/shouldNotSee.ts","../src/features/playwright/modules/assertions/utils/shouldSee.ts","../src/features/playwright/modules/interactions/utils/clickBodyCorner.ts","../src/features/playwright/shared/locators/utils/getLocatorByText.ts","../src/features/playwright/shared/locators/utils/getButton.ts","../src/features/playwright/shared/locators/utils/getLabel.ts","../src/features/playwright/shared/locators/utils/getLink.ts","../src/features/playwright/modules/interactions/utils/clickButton.ts","../src/features/playwright/modules/interactions/utils/clickLabelInput.ts","../src/features/playwright/modules/interactions/utils/clickLink.ts","../src/features/playwright/modules/interactions/utils/clickMultipleLabelInputs.ts","../src/features/playwright/modules/interactions/utils/fillLocatorWith.ts","../src/features/playwright/modules/interactions/utils/setLocatorValue.ts","../src/features/playwright/modules/interactions/utils/setValueForLocators.ts","../src/features/playwright/modules/runners/utils/runSimilarTests.ts"],"sourcesContent":["import type { Locator, Page } from \"@playwright/test\";\r\nimport { expect } from \"@playwright/test\";\r\n\r\n/**\r\n * Asserts that the element selected by the CSS selector is checked.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param selector CSS selector for a checkbox or radio input.\r\n * @returns The checked locator.\r\n * @example\r\n * ```ts\r\n * const checkbox = await isChecked(page, \"#terms\");\r\n * ```\r\n */\r\nexport async function isChecked(\r\n page: Page,\r\n selector: string,\r\n): Promise<Locator> {\r\n const locator = page.locator(selector);\r\n await expect(locator).toBeChecked();\r\n return locator;\r\n}\r\n","import type { Locator, Page } from \"@playwright/test\";\r\nimport { expect } from \"@playwright/test\";\r\n\r\n/**\r\n * Asserts that the element selected by the CSS selector is not checked.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param selector CSS selector for a checkbox or radio input.\r\n * @returns The unchecked locator.\r\n * @example\r\n * ```ts\r\n * const checkbox = await isNotChecked(page, \"#terms\");\r\n * ```\r\n */\r\nexport async function isNotChecked(\r\n page: Page,\r\n selector: string,\r\n): Promise<Locator> {\r\n const locator = page.locator(selector);\r\n await expect(locator).not.toBeChecked();\r\n return locator;\r\n}\r\n","import { patternToRegex } from \"@/shared/regex\";\r\nimport { expect, type Locator, type Page } from \"@playwright/test\";\r\nimport { TEXT_MATCHER } from \"../types\";\r\n\r\nexport function getMatcher(\r\n page: Page,\r\n ...textes: TEXT_MATCHER[]\r\n): ReturnType<typeof expect<Locator>>[] {\r\n return textes.map((text) => {\r\n if (Array.isArray(text)) {\r\n const [matcher, nth] = text;\r\n return expect(page.getByText(patternToRegex(matcher)).nth(nth));\r\n }\r\n return expect(page.getByText(text));\r\n });\r\n}\r\n","import type { Page } from \"@playwright/test\";\r\nimport type { TEXT_MATCHER } from \"../types\";\r\nimport { getMatcher } from \"./getMatcher\";\r\n\r\n/**\r\n * Asserts that each text matcher is not visible on the page.\r\n *\r\n * @param page The Playwright page to inspect.\r\n * @param textes Text strings, regular expressions, or `[matcher, occurrenceIndex]` pairs.\r\n * @returns A promise that resolves when every matching element is not visible.\r\n * @example\r\n * ```ts\r\n * await shouldNotSee(page, \"Error message\");\r\n * ```\r\n */\r\nexport async function shouldNotSee(page: Page, ...textes: TEXT_MATCHER[]) {\r\n const matchers = getMatcher(page, ...textes);\r\n for (let i = 0; i < matchers.length; i++) {\r\n await matchers[i].not.toBeVisible();\r\n }\r\n}\r\n","import type { Page } from \"@playwright/test\";\r\nimport type { TEXT_MATCHER } from \"../types\";\r\nimport { getMatcher } from \"./getMatcher\";\r\n\r\n/**\r\n * Asserts that each text matcher is visible on the page.\r\n *\r\n * @param page The Playwright page to inspect.\r\n * @param textes Text strings, regular expressions, or `[matcher, occurrenceIndex]` pairs.\r\n * @returns A promise that resolves when every matching element is visible.\r\n * @example\r\n * ```ts\r\n * await shouldSee(page, \"Welcome\", [/Saved/i, 0]);\r\n * ```\r\n */\r\nexport async function shouldSee(page: Page, ...textes: TEXT_MATCHER[]) {\r\n const matchers = getMatcher(page, ...textes);\r\n for (let i = 0; i < matchers.length; i++) {\r\n await matchers[i].toBeVisible();\r\n }\r\n}\r\n","import type { Page } from \"@playwright/test\";\r\n\r\n/**\r\n * Clicks the top-left corner of the page body.\r\n *\r\n * @param page The Playwright page to interact with.\r\n * @returns A promise that resolves after the click.\r\n * @example\r\n * ```ts\r\n * await clickBodyCorner(page);\r\n * ```\r\n */\r\nexport async function clickBodyCorner(page: Page) {\r\n await page.locator(\"body\").click({ position: { x: 0, y: 0 } });\r\n}\r\n","import type { Page } from \"@playwright/test\";\r\nimport type { LocatorWithText } from \"../types\";\r\n\r\n/**\r\n * Locates elements matching a selector and text pattern.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param locator Selector paired with text that the element must contain.\r\n * @returns A locator matching the selector and text.\r\n * @example\r\n * ```ts\r\n * const save = getLocatorByText(page, [\"button\", \"Save\"]);\r\n * ```\r\n */\r\nexport function getLocatorByText(\r\n page: Page,\r\n [locator, hasText]: LocatorWithText,\r\n) {\r\n return page.locator(locator, { hasText });\r\n}\r\n","import { TEXT_PATTERN } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\nimport { getLocatorByText } from \"./getLocatorByText\";\r\n\r\n/**\r\n * Locates a button by its contained text.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param hasText Text or regular expression contained by the button.\r\n * @returns A locator for the matching button.\r\n * @example\r\n * ```ts\r\n * const saveButton = getButton(page, \"Save\");\r\n * ```\r\n */\r\nexport function getButton(page: Page, hasText: TEXT_PATTERN) {\r\n return getLocatorByText(page, [\"button\", hasText]);\r\n}\r\n","import { TEXT_PATTERN } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\nimport { getLocatorByText } from \"./getLocatorByText\";\r\n\r\n/**\r\n * Locates a label by its contained text.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param hasText Text or regular expression contained by the label.\r\n * @returns A locator for the matching label.\r\n * @example\r\n * ```ts\r\n * const emailLabel = getLabel(page, \"Email\");\r\n * ```\r\n */\r\nexport function getLabel(page: Page, hasText: TEXT_PATTERN) {\r\n return getLocatorByText(page, [\"label\", hasText]);\r\n}\r\n","import { TEXT_PATTERN } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\n\r\n/**\r\n * Locates a link by its accessible name.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param hasText Text or regular expression matching the link's accessible name.\r\n * @returns A locator for the matching link.\r\n * @example\r\n * ```ts\r\n * const documentationLink = getLink(page, \"Documentation\");\r\n * ```\r\n */\r\nexport function getLink(page: Page, hasText: TEXT_PATTERN) {\r\n return page.getByRole(\"link\", { name: hasText });\r\n}\r\n","import { getButton } from \"@/features/playwright/shared/locators\";\r\nimport { TEXT_PATTERN } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\n\r\n/**\r\n * Clicks a button matching the supplied text.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param hasText Text or regular expression contained by the button.\r\n * @returns A promise that resolves after the button is clicked.\r\n * @example\r\n * ```ts\r\n * await clickButton(page, \"Save\");\r\n * ```\r\n */\r\nexport async function clickButton(page: Page, hasText: TEXT_PATTERN) {\r\n await getButton(page, hasText).click();\r\n}\r\n","import { getLabel } from \"@/features/playwright/shared/locators\";\r\nimport { TEXT_PATTERN } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\n\r\n/**\r\n * Clicks the label matching the supplied text.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param labelText Text or regular expression contained by the label.\r\n * @returns A promise that resolves after the label is clicked.\r\n * @example\r\n * ```ts\r\n * await clickLabelInput(page, \"Subscribe\");\r\n * ```\r\n */\r\nexport async function clickLabelInput(page: Page, labelText: TEXT_PATTERN) {\r\n await getLabel(page, labelText).click();\r\n}\r\n","import { getLink } from \"@/features/playwright/shared/locators\";\r\nimport { TEXT_PATTERN } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\n\r\n/**\r\n * Clicks a link matching the supplied accessible name.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param hasText Text or regular expression matching the link name.\r\n * @returns A promise that resolves after the link is clicked.\r\n * @example\r\n * ```ts\r\n * await clickLink(page, \"Documentation\");\r\n * ```\r\n */\r\nexport async function clickLink(page: Page, hasText: TEXT_PATTERN) {\r\n await getLink(page, hasText).click();\r\n}\r\n","import { TEXT_PATTERN } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\nimport { clickLabelInput } from \"./clickLabelInput\";\r\n\r\n/**\r\n * Clicks each matching label in the supplied order.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param labelTexts Text or regular expressions for the labels to click.\r\n * @returns A promise that resolves after all labels are clicked.\r\n * @example\r\n * ```ts\r\n * await clickMultipleLabelInputs(page, [\"Email\", \"Subscribe\"]);\r\n * ```\r\n */\r\nexport async function clickMultipleLabelInputs(\r\n page: Page,\r\n labelTexts: TEXT_PATTERN[],\r\n) {\r\n for (const labelText of labelTexts) {\r\n await clickLabelInput(page, labelText);\r\n }\r\n}\r\n","import type { Locator } from \"@playwright/test\";\r\n\r\n/**\r\n * Clicks a locator and fills it with the supplied value.\r\n *\r\n * @param locator The input-like locator to fill.\r\n * @param value The value to enter.\r\n * @returns A promise that resolves after the locator is filled.\r\n * @example\r\n * ```ts\r\n * await fillLocatorWith(page.getByLabel(\"Email\"), \"user@example.com\");\r\n * ```\r\n */\r\nexport async function fillLocatorWith(locator: Locator, value: string) {\r\n await locator.click();\r\n await locator.fill(value);\r\n}\r\n","import { type LABEL_LOCATOR, patternToRegex } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\n\r\n/**\r\n * Clicks the label matching the pattern and fills it with the supplied value.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param locatorAndValue Label text or pattern paired with the value to fill.\r\n * @returns A promise that resolves after the matching label is filled.\r\n * @example\r\n * ```ts\r\n * await setLocatorValue(page, [\"Email\", \"user@example.com\"]);\r\n * ```\r\n */\r\nexport async function setLocatorValue(\r\n page: Page,\r\n [locator, value]: LABEL_LOCATOR,\r\n) {\r\n const element = page.locator(\"label\", { hasText: patternToRegex(locator) });\r\n await element.click();\r\n await element.fill(value);\r\n}\r\n","import { LABEL_LOCATOR } from \"@/shared/regex\";\r\nimport type { Page } from \"@playwright/test\";\r\nimport { setLocatorValue } from \"./setLocatorValue\";\r\n\r\n/**\r\n * Sets values for a sequence of label/value pairs in order.\r\n *\r\n * @param page The Playwright page to search.\r\n * @param locatorsAndValues Label text or pattern paired with its value.\r\n * @returns A promise that resolves after all values are set.\r\n * @example\r\n * ```ts\r\n * await setValueForLocators(page, [\r\n * [\"Email\", \"user@example.com\"],\r\n * [\"Name\", \"Alex\"],\r\n * ]);\r\n * ```\r\n */\r\nexport async function setValueForLocators(\r\n page: Page,\r\n locatorsAndValues: LABEL_LOCATOR[],\r\n) {\r\n for (const locatorAndValue of locatorsAndValues) {\r\n await setLocatorValue(page, locatorAndValue);\r\n }\r\n}\r\n","import test from \"@playwright/test\";\r\nimport type { SimpleTest } from \"../types\";\r\n\r\n/**\r\n * Registers tests that share the same page navigation and setup.\r\n *\r\n * @param tests Tuples of test names followed by page callbacks.\r\n * @returns Nothing; registers one Playwright test for each tuple.\r\n * @example\r\n * ```ts\r\n * runSimilarTests([\r\n * [\"shows the home page\", async (page) => {\r\n * await page.getByRole(\"heading\", { name: \"Home\" }).waitFor();\r\n * }],\r\n * ]);\r\n * ```\r\n */\r\nexport function runSimilarTests(...tests: SimpleTest[]) {\r\n tests.forEach(([testName, ...testFunctions]) =>\r\n test(testName, async ({ page }) => {\r\n await page.goto(\"/\");\r\n for (const testFunction of testFunctions) await testFunction(page);\r\n }),\r\n );\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ import { i as TEXT_WITH_NTH, n as TEXT_MATCHER, r as TEXT_PATTERN, t as LABEL_LOCATOR } from "./types-BlSFP07Z.cjs";
2
+ import { Locator, Page } from "@playwright/test";
3
+ //#region src/features/playwright/modules/assertions/utils/isChecked.d.ts
4
+ /**
5
+ * Asserts that the element selected by the CSS selector is checked.
6
+ *
7
+ * @param page The Playwright page to search.
8
+ * @param selector CSS selector for a checkbox or radio input.
9
+ * @returns The checked locator.
10
+ * @example
11
+ * ```ts
12
+ * const checkbox = await isChecked(page, "#terms");
13
+ * ```
14
+ */
15
+ export declare function isChecked(page: Page, selector: string): Promise<Locator>;
16
+ //#endregion
17
+ //#region src/features/playwright/modules/assertions/utils/isNotChecked.d.ts
18
+ /**
19
+ * Asserts that the element selected by the CSS selector is not checked.
20
+ *
21
+ * @param page The Playwright page to search.
22
+ * @param selector CSS selector for a checkbox or radio input.
23
+ * @returns The unchecked locator.
24
+ * @example
25
+ * ```ts
26
+ * const checkbox = await isNotChecked(page, "#terms");
27
+ * ```
28
+ */
29
+ export declare function isNotChecked(page: Page, selector: string): Promise<Locator>;
30
+ //#endregion
31
+ //#region src/features/playwright/modules/assertions/utils/shouldNotSee.d.ts
32
+ /**
33
+ * Asserts that each text matcher is not visible on the page.
34
+ *
35
+ * @param page The Playwright page to inspect.
36
+ * @param textes Text strings, regular expressions, or `[matcher, occurrenceIndex]` pairs.
37
+ * @returns A promise that resolves when every matching element is not visible.
38
+ * @example
39
+ * ```ts
40
+ * await shouldNotSee(page, "Error message");
41
+ * ```
42
+ */
43
+ export declare function shouldNotSee(page: Page, ...textes: TEXT_MATCHER[]): Promise<void>;
44
+ //#endregion
45
+ //#region src/features/playwright/modules/assertions/utils/shouldSee.d.ts
46
+ /**
47
+ * Asserts that each text matcher is visible on the page.
48
+ *
49
+ * @param page The Playwright page to inspect.
50
+ * @param textes Text strings, regular expressions, or `[matcher, occurrenceIndex]` pairs.
51
+ * @returns A promise that resolves when every matching element is visible.
52
+ * @example
53
+ * ```ts
54
+ * await shouldSee(page, "Welcome", [/Saved/i, 0]);
55
+ * ```
56
+ */
57
+ export declare function shouldSee(page: Page, ...textes: TEXT_MATCHER[]): Promise<void>;
58
+ //#endregion
59
+ //#region src/features/playwright/modules/interactions/utils/clickBodyCorner.d.ts
60
+ /**
61
+ * Clicks the top-left corner of the page body.
62
+ *
63
+ * @param page The Playwright page to interact with.
64
+ * @returns A promise that resolves after the click.
65
+ * @example
66
+ * ```ts
67
+ * await clickBodyCorner(page);
68
+ * ```
69
+ */
70
+ export declare function clickBodyCorner(page: Page): Promise<void>;
71
+ //#endregion
72
+ //#region src/features/playwright/modules/interactions/utils/clickButton.d.ts
73
+ /**
74
+ * Clicks a button matching the supplied text.
75
+ *
76
+ * @param page The Playwright page to search.
77
+ * @param hasText Text or regular expression contained by the button.
78
+ * @returns A promise that resolves after the button is clicked.
79
+ * @example
80
+ * ```ts
81
+ * await clickButton(page, "Save");
82
+ * ```
83
+ */
84
+ export declare function clickButton(page: Page, hasText: TEXT_PATTERN): Promise<void>;
85
+ //#endregion
86
+ //#region src/features/playwright/modules/interactions/utils/clickLabelInput.d.ts
87
+ /**
88
+ * Clicks the label matching the supplied text.
89
+ *
90
+ * @param page The Playwright page to search.
91
+ * @param labelText Text or regular expression contained by the label.
92
+ * @returns A promise that resolves after the label is clicked.
93
+ * @example
94
+ * ```ts
95
+ * await clickLabelInput(page, "Subscribe");
96
+ * ```
97
+ */
98
+ export declare function clickLabelInput(page: Page, labelText: TEXT_PATTERN): Promise<void>;
99
+ //#endregion
100
+ //#region src/features/playwright/modules/interactions/utils/clickLink.d.ts
101
+ /**
102
+ * Clicks a link matching the supplied accessible name.
103
+ *
104
+ * @param page The Playwright page to search.
105
+ * @param hasText Text or regular expression matching the link name.
106
+ * @returns A promise that resolves after the link is clicked.
107
+ * @example
108
+ * ```ts
109
+ * await clickLink(page, "Documentation");
110
+ * ```
111
+ */
112
+ export declare function clickLink(page: Page, hasText: TEXT_PATTERN): Promise<void>;
113
+ //#endregion
114
+ //#region src/features/playwright/modules/interactions/utils/clickMultipleLabelInputs.d.ts
115
+ /**
116
+ * Clicks each matching label in the supplied order.
117
+ *
118
+ * @param page The Playwright page to search.
119
+ * @param labelTexts Text or regular expressions for the labels to click.
120
+ * @returns A promise that resolves after all labels are clicked.
121
+ * @example
122
+ * ```ts
123
+ * await clickMultipleLabelInputs(page, ["Email", "Subscribe"]);
124
+ * ```
125
+ */
126
+ export declare function clickMultipleLabelInputs(page: Page, labelTexts: TEXT_PATTERN[]): Promise<void>;
127
+ //#endregion
128
+ //#region src/features/playwright/modules/interactions/utils/fillLocatorWith.d.ts
129
+ /**
130
+ * Clicks a locator and fills it with the supplied value.
131
+ *
132
+ * @param locator The input-like locator to fill.
133
+ * @param value The value to enter.
134
+ * @returns A promise that resolves after the locator is filled.
135
+ * @example
136
+ * ```ts
137
+ * await fillLocatorWith(page.getByLabel("Email"), "user@example.com");
138
+ * ```
139
+ */
140
+ export declare function fillLocatorWith(locator: Locator, value: string): Promise<void>;
141
+ //#endregion
142
+ //#region src/features/playwright/modules/interactions/utils/setLocatorValue.d.ts
143
+ /**
144
+ * Clicks the label matching the pattern and fills it with the supplied value.
145
+ *
146
+ * @param page The Playwright page to search.
147
+ * @param locatorAndValue Label text or pattern paired with the value to fill.
148
+ * @returns A promise that resolves after the matching label is filled.
149
+ * @example
150
+ * ```ts
151
+ * await setLocatorValue(page, ["Email", "user@example.com"]);
152
+ * ```
153
+ */
154
+ export declare function setLocatorValue(page: Page, [locator, value]: LABEL_LOCATOR): Promise<void>;
155
+ //#endregion
156
+ //#region src/features/playwright/modules/interactions/utils/setValueForLocators.d.ts
157
+ /**
158
+ * Sets values for a sequence of label/value pairs in order.
159
+ *
160
+ * @param page The Playwright page to search.
161
+ * @param locatorsAndValues Label text or pattern paired with its value.
162
+ * @returns A promise that resolves after all values are set.
163
+ * @example
164
+ * ```ts
165
+ * await setValueForLocators(page, [
166
+ * ["Email", "user@example.com"],
167
+ * ["Name", "Alex"],
168
+ * ]);
169
+ * ```
170
+ */
171
+ export declare function setValueForLocators(page: Page, locatorsAndValues: LABEL_LOCATOR[]): Promise<void>;
172
+ //#endregion
173
+ //#region src/features/playwright/modules/runners/types.d.ts
174
+ type TestRunner = (page: Page) => void | Promise<void>;
175
+ type SimpleTest = [string, ...TestRunner[]];
176
+ //#endregion
177
+ //#region src/features/playwright/modules/runners/utils/runSimilarTests.d.ts
178
+ /**
179
+ * Registers tests that share the same page navigation and setup.
180
+ *
181
+ * @param tests Tuples of test names followed by page callbacks.
182
+ * @returns Nothing; registers one Playwright test for each tuple.
183
+ * @example
184
+ * ```ts
185
+ * runSimilarTests([
186
+ * ["shows the home page", async (page) => {
187
+ * await page.getByRole("heading", { name: "Home" }).waitFor();
188
+ * }],
189
+ * ]);
190
+ * ```
191
+ */
192
+ export declare function runSimilarTests(...tests: SimpleTest[]): void;
193
+ //#endregion
194
+ //#region src/features/playwright/shared/locators/utils/getButton.d.ts
195
+ /**
196
+ * Locates a button by its contained text.
197
+ *
198
+ * @param page The Playwright page to search.
199
+ * @param hasText Text or regular expression contained by the button.
200
+ * @returns A locator for the matching button.
201
+ * @example
202
+ * ```ts
203
+ * const saveButton = getButton(page, "Save");
204
+ * ```
205
+ */
206
+ export declare function getButton(page: Page, hasText: TEXT_PATTERN): import("@playwright/test").Locator;
207
+ //#endregion
208
+ //#region src/features/playwright/shared/locators/utils/getLabel.d.ts
209
+ /**
210
+ * Locates a label by its contained text.
211
+ *
212
+ * @param page The Playwright page to search.
213
+ * @param hasText Text or regular expression contained by the label.
214
+ * @returns A locator for the matching label.
215
+ * @example
216
+ * ```ts
217
+ * const emailLabel = getLabel(page, "Email");
218
+ * ```
219
+ */
220
+ export declare function getLabel(page: Page, hasText: TEXT_PATTERN): import("@playwright/test").Locator;
221
+ //#endregion
222
+ //#region src/features/playwright/shared/locators/utils/getLink.d.ts
223
+ /**
224
+ * Locates a link by its accessible name.
225
+ *
226
+ * @param page The Playwright page to search.
227
+ * @param hasText Text or regular expression matching the link's accessible name.
228
+ * @returns A locator for the matching link.
229
+ * @example
230
+ * ```ts
231
+ * const documentationLink = getLink(page, "Documentation");
232
+ * ```
233
+ */
234
+ export declare function getLink(page: Page, hasText: TEXT_PATTERN): import("@playwright/test").Locator;
235
+ //#endregion
236
+ //#region src/features/playwright/shared/locators/types.d.ts
237
+ type LocatorWithText = [string, TEXT_PATTERN];
238
+ //#endregion
239
+ //#region src/features/playwright/shared/locators/utils/getLocatorByText.d.ts
240
+ /**
241
+ * Locates elements matching a selector and text pattern.
242
+ *
243
+ * @param page The Playwright page to search.
244
+ * @param locator Selector paired with text that the element must contain.
245
+ * @returns A locator matching the selector and text.
246
+ * @example
247
+ * ```ts
248
+ * const save = getLocatorByText(page, ["button", "Save"]);
249
+ * ```
250
+ */
251
+ export declare function getLocatorByText(page: Page, [locator, hasText]: LocatorWithText): import("@playwright/test").Locator;
252
+ //#endregion
253
+ export type { LABEL_LOCATOR, LocatorWithText, SimpleTest, TEXT_MATCHER, TEXT_PATTERN, TEXT_WITH_NTH, TestRunner };
254
+ //# sourceMappingURL=playwright.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.d.cts","names":[],"sources":["../src/features/playwright/modules/assertions/utils/isChecked.ts","../src/features/playwright/modules/assertions/utils/isNotChecked.ts","../src/features/playwright/modules/assertions/utils/shouldNotSee.ts","../src/features/playwright/modules/assertions/utils/shouldSee.ts","../src/features/playwright/modules/interactions/utils/clickBodyCorner.ts","../src/features/playwright/modules/interactions/utils/clickButton.ts","../src/features/playwright/modules/interactions/utils/clickLabelInput.ts","../src/features/playwright/modules/interactions/utils/clickLink.ts","../src/features/playwright/modules/interactions/utils/clickMultipleLabelInputs.ts","../src/features/playwright/modules/interactions/utils/fillLocatorWith.ts","../src/features/playwright/modules/interactions/utils/setLocatorValue.ts","../src/features/playwright/modules/interactions/utils/setValueForLocators.ts","../src/features/playwright/modules/runners/types.ts","../src/features/playwright/modules/runners/utils/runSimilarTests.ts","../src/features/playwright/shared/locators/utils/getButton.ts","../src/features/playwright/shared/locators/utils/getLabel.ts","../src/features/playwright/shared/locators/utils/getLink.ts","../src/features/playwright/shared/locators/types.ts","../src/features/playwright/shared/locators/utils/getLocatorByText.ts"],"mappings":";;;;;;;;;;;;;;wBAcsB,UACpB,MAAM,MACN,mBACC,QAAQ;;;;;;;;;;;;;;wBCHW,aACpB,MAAM,MACN,mBACC,QAAQ;;;;;;;;;;;;;;wBCFW,aAAa,MAAM,SAAS,QAAQ,iBAAc;;;;;;;;;;;;;;wBCAlD,UAAU,MAAM,SAAS,QAAQ,iBAAc;;;;;;;;;;;;;wBCH/C,gBAAgB,MAAM,OAAI;;;;;;;;;;;;;;wBCG1B,YAAY,MAAM,MAAM,SAAS,eAAY;;;;;;;;;;;;;;wBCA7C,gBAAgB,MAAM,MAAM,WAAW,eAAY;;;;;;;;;;;;;;wBCAnD,UAAU,MAAM,MAAM,SAAS,eAAY;;;;;;;;;;;;;;wBCA3C,yBACpB,MAAM,MACN,YAAY,iBAAc;;;;;;;;;;;;;;wBCJN,gBAAgB,SAAS,SAAS,gBAAa;;;;;;;;;;;;;;wBCC/C,gBACpB,MAAM,OACL,SAAS,QAAQ,gBAAa;;;;;;;;;;;;;;;;;wBCEX,oBACpB,MAAM,MACN,mBAAmB,kBAAe;;;KClBxB,cAAc,MAAM,gBAAgB;KACpC,yBAAyB;;;;;;;;;;;;;;;;;wBCcrB,mBAAmB,OAAO;;;;;;;;;;;;;;wBCF1B,UAAU,MAAM,MAAM,SAAS,0CAAY;;;;;;;;;;;;;;wBCA3C,SAAS,MAAM,MAAM,SAAS,0CAAY;;;;;;;;;;;;;;wBCD1C,QAAQ,MAAM,MAAM,SAAS,0CAAY;;;KCZ7C,2BAA2B;;;;;;;;;;;;;;wBCYvB,iBACd,MAAM,OACL,SAAS,UAAU,6CAAe"}
@@ -0,0 +1,254 @@
1
+ import { i as TEXT_WITH_NTH, n as TEXT_MATCHER, r as TEXT_PATTERN, t as LABEL_LOCATOR } from "./types-BlSFP07Z.mjs";
2
+ import { Locator, Page } from "@playwright/test";
3
+ //#region src/features/playwright/modules/assertions/utils/isChecked.d.ts
4
+ /**
5
+ * Asserts that the element selected by the CSS selector is checked.
6
+ *
7
+ * @param page The Playwright page to search.
8
+ * @param selector CSS selector for a checkbox or radio input.
9
+ * @returns The checked locator.
10
+ * @example
11
+ * ```ts
12
+ * const checkbox = await isChecked(page, "#terms");
13
+ * ```
14
+ */
15
+ export declare function isChecked(page: Page, selector: string): Promise<Locator>;
16
+ //#endregion
17
+ //#region src/features/playwright/modules/assertions/utils/isNotChecked.d.ts
18
+ /**
19
+ * Asserts that the element selected by the CSS selector is not checked.
20
+ *
21
+ * @param page The Playwright page to search.
22
+ * @param selector CSS selector for a checkbox or radio input.
23
+ * @returns The unchecked locator.
24
+ * @example
25
+ * ```ts
26
+ * const checkbox = await isNotChecked(page, "#terms");
27
+ * ```
28
+ */
29
+ export declare function isNotChecked(page: Page, selector: string): Promise<Locator>;
30
+ //#endregion
31
+ //#region src/features/playwright/modules/assertions/utils/shouldNotSee.d.ts
32
+ /**
33
+ * Asserts that each text matcher is not visible on the page.
34
+ *
35
+ * @param page The Playwright page to inspect.
36
+ * @param textes Text strings, regular expressions, or `[matcher, occurrenceIndex]` pairs.
37
+ * @returns A promise that resolves when every matching element is not visible.
38
+ * @example
39
+ * ```ts
40
+ * await shouldNotSee(page, "Error message");
41
+ * ```
42
+ */
43
+ export declare function shouldNotSee(page: Page, ...textes: TEXT_MATCHER[]): Promise<void>;
44
+ //#endregion
45
+ //#region src/features/playwright/modules/assertions/utils/shouldSee.d.ts
46
+ /**
47
+ * Asserts that each text matcher is visible on the page.
48
+ *
49
+ * @param page The Playwright page to inspect.
50
+ * @param textes Text strings, regular expressions, or `[matcher, occurrenceIndex]` pairs.
51
+ * @returns A promise that resolves when every matching element is visible.
52
+ * @example
53
+ * ```ts
54
+ * await shouldSee(page, "Welcome", [/Saved/i, 0]);
55
+ * ```
56
+ */
57
+ export declare function shouldSee(page: Page, ...textes: TEXT_MATCHER[]): Promise<void>;
58
+ //#endregion
59
+ //#region src/features/playwright/modules/interactions/utils/clickBodyCorner.d.ts
60
+ /**
61
+ * Clicks the top-left corner of the page body.
62
+ *
63
+ * @param page The Playwright page to interact with.
64
+ * @returns A promise that resolves after the click.
65
+ * @example
66
+ * ```ts
67
+ * await clickBodyCorner(page);
68
+ * ```
69
+ */
70
+ export declare function clickBodyCorner(page: Page): Promise<void>;
71
+ //#endregion
72
+ //#region src/features/playwright/modules/interactions/utils/clickButton.d.ts
73
+ /**
74
+ * Clicks a button matching the supplied text.
75
+ *
76
+ * @param page The Playwright page to search.
77
+ * @param hasText Text or regular expression contained by the button.
78
+ * @returns A promise that resolves after the button is clicked.
79
+ * @example
80
+ * ```ts
81
+ * await clickButton(page, "Save");
82
+ * ```
83
+ */
84
+ export declare function clickButton(page: Page, hasText: TEXT_PATTERN): Promise<void>;
85
+ //#endregion
86
+ //#region src/features/playwright/modules/interactions/utils/clickLabelInput.d.ts
87
+ /**
88
+ * Clicks the label matching the supplied text.
89
+ *
90
+ * @param page The Playwright page to search.
91
+ * @param labelText Text or regular expression contained by the label.
92
+ * @returns A promise that resolves after the label is clicked.
93
+ * @example
94
+ * ```ts
95
+ * await clickLabelInput(page, "Subscribe");
96
+ * ```
97
+ */
98
+ export declare function clickLabelInput(page: Page, labelText: TEXT_PATTERN): Promise<void>;
99
+ //#endregion
100
+ //#region src/features/playwright/modules/interactions/utils/clickLink.d.ts
101
+ /**
102
+ * Clicks a link matching the supplied accessible name.
103
+ *
104
+ * @param page The Playwright page to search.
105
+ * @param hasText Text or regular expression matching the link name.
106
+ * @returns A promise that resolves after the link is clicked.
107
+ * @example
108
+ * ```ts
109
+ * await clickLink(page, "Documentation");
110
+ * ```
111
+ */
112
+ export declare function clickLink(page: Page, hasText: TEXT_PATTERN): Promise<void>;
113
+ //#endregion
114
+ //#region src/features/playwright/modules/interactions/utils/clickMultipleLabelInputs.d.ts
115
+ /**
116
+ * Clicks each matching label in the supplied order.
117
+ *
118
+ * @param page The Playwright page to search.
119
+ * @param labelTexts Text or regular expressions for the labels to click.
120
+ * @returns A promise that resolves after all labels are clicked.
121
+ * @example
122
+ * ```ts
123
+ * await clickMultipleLabelInputs(page, ["Email", "Subscribe"]);
124
+ * ```
125
+ */
126
+ export declare function clickMultipleLabelInputs(page: Page, labelTexts: TEXT_PATTERN[]): Promise<void>;
127
+ //#endregion
128
+ //#region src/features/playwright/modules/interactions/utils/fillLocatorWith.d.ts
129
+ /**
130
+ * Clicks a locator and fills it with the supplied value.
131
+ *
132
+ * @param locator The input-like locator to fill.
133
+ * @param value The value to enter.
134
+ * @returns A promise that resolves after the locator is filled.
135
+ * @example
136
+ * ```ts
137
+ * await fillLocatorWith(page.getByLabel("Email"), "user@example.com");
138
+ * ```
139
+ */
140
+ export declare function fillLocatorWith(locator: Locator, value: string): Promise<void>;
141
+ //#endregion
142
+ //#region src/features/playwright/modules/interactions/utils/setLocatorValue.d.ts
143
+ /**
144
+ * Clicks the label matching the pattern and fills it with the supplied value.
145
+ *
146
+ * @param page The Playwright page to search.
147
+ * @param locatorAndValue Label text or pattern paired with the value to fill.
148
+ * @returns A promise that resolves after the matching label is filled.
149
+ * @example
150
+ * ```ts
151
+ * await setLocatorValue(page, ["Email", "user@example.com"]);
152
+ * ```
153
+ */
154
+ export declare function setLocatorValue(page: Page, [locator, value]: LABEL_LOCATOR): Promise<void>;
155
+ //#endregion
156
+ //#region src/features/playwright/modules/interactions/utils/setValueForLocators.d.ts
157
+ /**
158
+ * Sets values for a sequence of label/value pairs in order.
159
+ *
160
+ * @param page The Playwright page to search.
161
+ * @param locatorsAndValues Label text or pattern paired with its value.
162
+ * @returns A promise that resolves after all values are set.
163
+ * @example
164
+ * ```ts
165
+ * await setValueForLocators(page, [
166
+ * ["Email", "user@example.com"],
167
+ * ["Name", "Alex"],
168
+ * ]);
169
+ * ```
170
+ */
171
+ export declare function setValueForLocators(page: Page, locatorsAndValues: LABEL_LOCATOR[]): Promise<void>;
172
+ //#endregion
173
+ //#region src/features/playwright/modules/runners/types.d.ts
174
+ type TestRunner = (page: Page) => void | Promise<void>;
175
+ type SimpleTest = [string, ...TestRunner[]];
176
+ //#endregion
177
+ //#region src/features/playwright/modules/runners/utils/runSimilarTests.d.ts
178
+ /**
179
+ * Registers tests that share the same page navigation and setup.
180
+ *
181
+ * @param tests Tuples of test names followed by page callbacks.
182
+ * @returns Nothing; registers one Playwright test for each tuple.
183
+ * @example
184
+ * ```ts
185
+ * runSimilarTests([
186
+ * ["shows the home page", async (page) => {
187
+ * await page.getByRole("heading", { name: "Home" }).waitFor();
188
+ * }],
189
+ * ]);
190
+ * ```
191
+ */
192
+ export declare function runSimilarTests(...tests: SimpleTest[]): void;
193
+ //#endregion
194
+ //#region src/features/playwright/shared/locators/utils/getButton.d.ts
195
+ /**
196
+ * Locates a button by its contained text.
197
+ *
198
+ * @param page The Playwright page to search.
199
+ * @param hasText Text or regular expression contained by the button.
200
+ * @returns A locator for the matching button.
201
+ * @example
202
+ * ```ts
203
+ * const saveButton = getButton(page, "Save");
204
+ * ```
205
+ */
206
+ export declare function getButton(page: Page, hasText: TEXT_PATTERN): import("@playwright/test").Locator;
207
+ //#endregion
208
+ //#region src/features/playwright/shared/locators/utils/getLabel.d.ts
209
+ /**
210
+ * Locates a label by its contained text.
211
+ *
212
+ * @param page The Playwright page to search.
213
+ * @param hasText Text or regular expression contained by the label.
214
+ * @returns A locator for the matching label.
215
+ * @example
216
+ * ```ts
217
+ * const emailLabel = getLabel(page, "Email");
218
+ * ```
219
+ */
220
+ export declare function getLabel(page: Page, hasText: TEXT_PATTERN): import("@playwright/test").Locator;
221
+ //#endregion
222
+ //#region src/features/playwright/shared/locators/utils/getLink.d.ts
223
+ /**
224
+ * Locates a link by its accessible name.
225
+ *
226
+ * @param page The Playwright page to search.
227
+ * @param hasText Text or regular expression matching the link's accessible name.
228
+ * @returns A locator for the matching link.
229
+ * @example
230
+ * ```ts
231
+ * const documentationLink = getLink(page, "Documentation");
232
+ * ```
233
+ */
234
+ export declare function getLink(page: Page, hasText: TEXT_PATTERN): import("@playwright/test").Locator;
235
+ //#endregion
236
+ //#region src/features/playwright/shared/locators/types.d.ts
237
+ type LocatorWithText = [string, TEXT_PATTERN];
238
+ //#endregion
239
+ //#region src/features/playwright/shared/locators/utils/getLocatorByText.d.ts
240
+ /**
241
+ * Locates elements matching a selector and text pattern.
242
+ *
243
+ * @param page The Playwright page to search.
244
+ * @param locator Selector paired with text that the element must contain.
245
+ * @returns A locator matching the selector and text.
246
+ * @example
247
+ * ```ts
248
+ * const save = getLocatorByText(page, ["button", "Save"]);
249
+ * ```
250
+ */
251
+ export declare function getLocatorByText(page: Page, [locator, hasText]: LocatorWithText): import("@playwright/test").Locator;
252
+ //#endregion
253
+ export type { LABEL_LOCATOR, LocatorWithText, SimpleTest, TEXT_MATCHER, TEXT_PATTERN, TEXT_WITH_NTH, TestRunner };
254
+ //# sourceMappingURL=playwright.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright.d.mts","names":[],"sources":["../src/features/playwright/modules/assertions/utils/isChecked.ts","../src/features/playwright/modules/assertions/utils/isNotChecked.ts","../src/features/playwright/modules/assertions/utils/shouldNotSee.ts","../src/features/playwright/modules/assertions/utils/shouldSee.ts","../src/features/playwright/modules/interactions/utils/clickBodyCorner.ts","../src/features/playwright/modules/interactions/utils/clickButton.ts","../src/features/playwright/modules/interactions/utils/clickLabelInput.ts","../src/features/playwright/modules/interactions/utils/clickLink.ts","../src/features/playwright/modules/interactions/utils/clickMultipleLabelInputs.ts","../src/features/playwright/modules/interactions/utils/fillLocatorWith.ts","../src/features/playwright/modules/interactions/utils/setLocatorValue.ts","../src/features/playwright/modules/interactions/utils/setValueForLocators.ts","../src/features/playwright/modules/runners/types.ts","../src/features/playwright/modules/runners/utils/runSimilarTests.ts","../src/features/playwright/shared/locators/utils/getButton.ts","../src/features/playwright/shared/locators/utils/getLabel.ts","../src/features/playwright/shared/locators/utils/getLink.ts","../src/features/playwright/shared/locators/types.ts","../src/features/playwright/shared/locators/utils/getLocatorByText.ts"],"mappings":";;;;;;;;;;;;;;wBAcsB,UACpB,MAAM,MACN,mBACC,QAAQ;;;;;;;;;;;;;;wBCHW,aACpB,MAAM,MACN,mBACC,QAAQ;;;;;;;;;;;;;;wBCFW,aAAa,MAAM,SAAS,QAAQ,iBAAc;;;;;;;;;;;;;;wBCAlD,UAAU,MAAM,SAAS,QAAQ,iBAAc;;;;;;;;;;;;;wBCH/C,gBAAgB,MAAM,OAAI;;;;;;;;;;;;;;wBCG1B,YAAY,MAAM,MAAM,SAAS,eAAY;;;;;;;;;;;;;;wBCA7C,gBAAgB,MAAM,MAAM,WAAW,eAAY;;;;;;;;;;;;;;wBCAnD,UAAU,MAAM,MAAM,SAAS,eAAY;;;;;;;;;;;;;;wBCA3C,yBACpB,MAAM,MACN,YAAY,iBAAc;;;;;;;;;;;;;;wBCJN,gBAAgB,SAAS,SAAS,gBAAa;;;;;;;;;;;;;;wBCC/C,gBACpB,MAAM,OACL,SAAS,QAAQ,gBAAa;;;;;;;;;;;;;;;;;wBCEX,oBACpB,MAAM,MACN,mBAAmB,kBAAe;;;KClBxB,cAAc,MAAM,gBAAgB;KACpC,yBAAyB;;;;;;;;;;;;;;;;;wBCcrB,mBAAmB,OAAO;;;;;;;;;;;;;;wBCF1B,UAAU,MAAM,MAAM,SAAS,0CAAY;;;;;;;;;;;;;;wBCA3C,SAAS,MAAM,MAAM,SAAS,0CAAY;;;;;;;;;;;;;;wBCD1C,QAAQ,MAAM,MAAM,SAAS,0CAAY;;;KCZ7C,2BAA2B;;;;;;;;;;;;;;wBCYvB,iBACd,MAAM,OACL,SAAS,UAAU,6CAAe"}