playwright-automation-core 1.0.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/LICENSE +21 -0
- package/README.md +225 -0
- package/dist/api/api.assertions.d.ts +196 -0
- package/dist/api/api.assertions.d.ts.map +1 -0
- package/dist/api/api.assertions.js +462 -0
- package/dist/api/api.assertions.js.map +1 -0
- package/dist/api/api.builder.d.ts +134 -0
- package/dist/api/api.builder.d.ts.map +1 -0
- package/dist/api/api.builder.js +273 -0
- package/dist/api/api.builder.js.map +1 -0
- package/dist/api/api.client.d.ts +157 -0
- package/dist/api/api.client.d.ts.map +1 -0
- package/dist/api/api.client.js +493 -0
- package/dist/api/api.client.js.map +1 -0
- package/dist/api/index.d.ts +8 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +17 -0
- package/dist/api/index.js.map +1 -0
- package/dist/core/base.driver.d.ts +130 -0
- package/dist/core/base.driver.d.ts.map +1 -0
- package/dist/core/base.driver.js +264 -0
- package/dist/core/base.driver.js.map +1 -0
- package/dist/core/driver.factory.d.ts +120 -0
- package/dist/core/driver.factory.d.ts.map +1 -0
- package/dist/core/driver.factory.js +222 -0
- package/dist/core/driver.factory.js.map +1 -0
- package/dist/core/element.actions.d.ts +119 -0
- package/dist/core/element.actions.d.ts.map +1 -0
- package/dist/core/element.actions.js +379 -0
- package/dist/core/element.actions.js.map +1 -0
- package/dist/core/hook.manager.d.ts +186 -0
- package/dist/core/hook.manager.d.ts.map +1 -0
- package/dist/core/hook.manager.js +297 -0
- package/dist/core/hook.manager.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +22 -0
- package/dist/core/index.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/dist/mobile/index.d.ts +7 -0
- package/dist/mobile/index.d.ts.map +1 -0
- package/dist/mobile/index.js +14 -0
- package/dist/mobile/index.js.map +1 -0
- package/dist/mobile/mobile.assertions.d.ts +146 -0
- package/dist/mobile/mobile.assertions.d.ts.map +1 -0
- package/dist/mobile/mobile.assertions.js +333 -0
- package/dist/mobile/mobile.assertions.js.map +1 -0
- package/dist/mobile/mobile.driver.d.ts +297 -0
- package/dist/mobile/mobile.driver.d.ts.map +1 -0
- package/dist/mobile/mobile.driver.js +808 -0
- package/dist/mobile/mobile.driver.js.map +1 -0
- package/dist/types/common.types.d.ts +200 -0
- package/dist/types/common.types.d.ts.map +1 -0
- package/dist/types/common.types.js +3 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/config.types.d.ts +192 -0
- package/dist/types/config.types.d.ts.map +1 -0
- package/dist/types/config.types.js +3 -0
- package/dist/types/config.types.js.map +1 -0
- package/dist/types/driver.types.d.ts +500 -0
- package/dist/types/driver.types.d.ts.map +1 -0
- package/dist/types/driver.types.js +3 -0
- package/dist/types/driver.types.js.map +1 -0
- package/dist/types/enums.d.ts +53 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/enums.js +62 -0
- package/dist/types/enums.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +15 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/config.manager.d.ts +144 -0
- package/dist/utils/config.manager.d.ts.map +1 -0
- package/dist/utils/config.manager.js +473 -0
- package/dist/utils/config.manager.js.map +1 -0
- package/dist/utils/errors.d.ts +149 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +290 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/helpers.d.ts +124 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +421 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +78 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +145 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +235 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/wait.utils.d.ts +95 -0
- package/dist/utils/wait.utils.d.ts.map +1 -0
- package/dist/utils/wait.utils.js +306 -0
- package/dist/utils/wait.utils.js.map +1 -0
- package/dist/web/index.d.ts +8 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +16 -0
- package/dist/web/index.js.map +1 -0
- package/dist/web/web.assertions.d.ts +164 -0
- package/dist/web/web.assertions.d.ts.map +1 -0
- package/dist/web/web.assertions.js +427 -0
- package/dist/web/web.assertions.js.map +1 -0
- package/dist/web/web.driver.d.ts +174 -0
- package/dist/web/web.driver.d.ts.map +1 -0
- package/dist/web/web.driver.js +571 -0
- package/dist/web/web.driver.js.map +1 -0
- package/dist/web/web.page.d.ts +286 -0
- package/dist/web/web.page.d.ts.map +1 -0
- package/dist/web/web.page.js +570 -0
- package/dist/web/web.page.js.map +1 -0
- package/package.json +115 -0
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retry = exports.waitFor = exports.sleep = exports.waitUtils = exports.WaitUtils = exports.RetryExhaustedError = exports.WaitTimeoutError = void 0;
|
|
4
|
+
const logger_1 = require("./logger");
|
|
5
|
+
/**
|
|
6
|
+
* Default wait options
|
|
7
|
+
*/
|
|
8
|
+
const DEFAULT_WAIT_OPTIONS = {
|
|
9
|
+
timeout: 30000,
|
|
10
|
+
interval: 100,
|
|
11
|
+
message: "Wait condition not met",
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Default retry options
|
|
15
|
+
*/
|
|
16
|
+
const DEFAULT_RETRY_OPTIONS = {
|
|
17
|
+
maxRetries: 3,
|
|
18
|
+
retryDelay: 1000,
|
|
19
|
+
backoffMultiplier: 1.5,
|
|
20
|
+
retryOnErrors: [],
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Wait timeout error
|
|
24
|
+
*/
|
|
25
|
+
class WaitTimeoutError extends Error {
|
|
26
|
+
timeout;
|
|
27
|
+
constructor(message, timeout) {
|
|
28
|
+
super(message);
|
|
29
|
+
this.timeout = timeout;
|
|
30
|
+
this.name = "WaitTimeoutError";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.WaitTimeoutError = WaitTimeoutError;
|
|
34
|
+
/**
|
|
35
|
+
* Retry exhausted error
|
|
36
|
+
*/
|
|
37
|
+
class RetryExhaustedError extends Error {
|
|
38
|
+
attempts;
|
|
39
|
+
lastError;
|
|
40
|
+
constructor(message, attempts, lastError) {
|
|
41
|
+
super(message);
|
|
42
|
+
this.attempts = attempts;
|
|
43
|
+
this.lastError = lastError;
|
|
44
|
+
this.name = "RetryExhaustedError";
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.RetryExhaustedError = RetryExhaustedError;
|
|
48
|
+
/**
|
|
49
|
+
* Wait utilities class providing various wait mechanisms
|
|
50
|
+
*/
|
|
51
|
+
class WaitUtils {
|
|
52
|
+
logger;
|
|
53
|
+
constructor(logger) {
|
|
54
|
+
this.logger = logger || logger_1.Logger.getInstance();
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Sleep for specified milliseconds
|
|
58
|
+
*/
|
|
59
|
+
async sleep(ms) {
|
|
60
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Wait for a condition to be truthy
|
|
64
|
+
* @param condition - Function that returns a value to check
|
|
65
|
+
* @param options - Wait options
|
|
66
|
+
* @returns The truthy value returned by condition
|
|
67
|
+
*/
|
|
68
|
+
async waitFor(condition, options = {}) {
|
|
69
|
+
const opts = { ...DEFAULT_WAIT_OPTIONS, ...options };
|
|
70
|
+
const startTime = Date.now();
|
|
71
|
+
while (Date.now() - startTime < opts.timeout) {
|
|
72
|
+
try {
|
|
73
|
+
const result = await condition();
|
|
74
|
+
if (result) {
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
// Condition threw an error, continue waiting
|
|
80
|
+
this.logger.trace(`Wait condition threw error: ${error.message}`);
|
|
81
|
+
}
|
|
82
|
+
await this.sleep(opts.interval);
|
|
83
|
+
}
|
|
84
|
+
throw new WaitTimeoutError(`${opts.message} (timeout: ${opts.timeout}ms)`, opts.timeout);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Wait for a condition to match a predicate
|
|
88
|
+
* @param condition - Function that returns a value
|
|
89
|
+
* @param predicate - Function to check the value
|
|
90
|
+
* @param options - Wait options
|
|
91
|
+
*/
|
|
92
|
+
async waitForCondition(condition, predicate, options = {}) {
|
|
93
|
+
const opts = { ...DEFAULT_WAIT_OPTIONS, ...options };
|
|
94
|
+
const startTime = Date.now();
|
|
95
|
+
while (Date.now() - startTime < opts.timeout) {
|
|
96
|
+
try {
|
|
97
|
+
const result = await condition();
|
|
98
|
+
if (predicate(result)) {
|
|
99
|
+
return result;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
this.logger.trace(`Wait condition threw error: ${error.message}`);
|
|
104
|
+
}
|
|
105
|
+
await this.sleep(opts.interval);
|
|
106
|
+
}
|
|
107
|
+
throw new WaitTimeoutError(`${opts.message} (timeout: ${opts.timeout}ms)`, opts.timeout);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Wait for a condition to be false/falsy
|
|
111
|
+
*/
|
|
112
|
+
async waitForNot(condition, options = {}) {
|
|
113
|
+
const opts = { ...DEFAULT_WAIT_OPTIONS, ...options };
|
|
114
|
+
const startTime = Date.now();
|
|
115
|
+
while (Date.now() - startTime < opts.timeout) {
|
|
116
|
+
try {
|
|
117
|
+
const result = await condition();
|
|
118
|
+
if (!result) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
// Condition threw an error, consider it as falsy
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
await this.sleep(opts.interval);
|
|
127
|
+
}
|
|
128
|
+
throw new WaitTimeoutError(`${opts.message} - condition did not become falsy (timeout: ${opts.timeout}ms)`, opts.timeout);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Wait for any of the conditions to be truthy
|
|
132
|
+
* @returns Object with index and result of the first truthy condition
|
|
133
|
+
*/
|
|
134
|
+
async waitForAny(conditions, options = {}) {
|
|
135
|
+
const opts = { ...DEFAULT_WAIT_OPTIONS, ...options };
|
|
136
|
+
const startTime = Date.now();
|
|
137
|
+
while (Date.now() - startTime < opts.timeout) {
|
|
138
|
+
for (let i = 0; i < conditions.length; i++) {
|
|
139
|
+
try {
|
|
140
|
+
const result = await conditions[i]();
|
|
141
|
+
if (result) {
|
|
142
|
+
return { index: i, result };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
// Continue to next condition
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
await this.sleep(opts.interval);
|
|
150
|
+
}
|
|
151
|
+
throw new WaitTimeoutError(`${opts.message} - none of the conditions were met (timeout: ${opts.timeout}ms)`, opts.timeout);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Wait for all conditions to be truthy
|
|
155
|
+
*/
|
|
156
|
+
async waitForAll(conditions, options = {}) {
|
|
157
|
+
const opts = { ...DEFAULT_WAIT_OPTIONS, ...options };
|
|
158
|
+
const startTime = Date.now();
|
|
159
|
+
while (Date.now() - startTime < opts.timeout) {
|
|
160
|
+
const results = [];
|
|
161
|
+
let allMet = true;
|
|
162
|
+
for (const condition of conditions) {
|
|
163
|
+
try {
|
|
164
|
+
const result = await condition();
|
|
165
|
+
if (result) {
|
|
166
|
+
results.push(result);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
allMet = false;
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
catch (error) {
|
|
174
|
+
allMet = false;
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (allMet && results.length === conditions.length) {
|
|
179
|
+
return results;
|
|
180
|
+
}
|
|
181
|
+
await this.sleep(opts.interval);
|
|
182
|
+
}
|
|
183
|
+
throw new WaitTimeoutError(`${opts.message} - not all conditions were met (timeout: ${opts.timeout}ms)`, opts.timeout);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Retry a function until it succeeds or retries are exhausted
|
|
187
|
+
*/
|
|
188
|
+
async retry(fn, options = {}) {
|
|
189
|
+
const opts = { ...DEFAULT_RETRY_OPTIONS, ...options };
|
|
190
|
+
let lastError;
|
|
191
|
+
let delay = opts.retryDelay;
|
|
192
|
+
for (let attempt = 1; attempt <= opts.maxRetries + 1; attempt++) {
|
|
193
|
+
try {
|
|
194
|
+
return await fn();
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
lastError = error;
|
|
198
|
+
// Check if we should retry on this error
|
|
199
|
+
if (opts.retryOnErrors.length > 0) {
|
|
200
|
+
const shouldRetry = opts.retryOnErrors.some((errType) => lastError?.name === errType ||
|
|
201
|
+
lastError?.message.includes(errType));
|
|
202
|
+
if (!shouldRetry) {
|
|
203
|
+
throw lastError;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (attempt <= opts.maxRetries) {
|
|
207
|
+
this.logger.debug(`Retry attempt ${attempt}/${opts.maxRetries} after error: ${lastError.message}`);
|
|
208
|
+
await this.sleep(delay);
|
|
209
|
+
delay = Math.floor(delay * opts.backoffMultiplier);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
throw new RetryExhaustedError(`Function failed after ${opts.maxRetries + 1} attempts: ${lastError?.message}`, opts.maxRetries + 1, lastError);
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Retry with a condition check
|
|
217
|
+
*/
|
|
218
|
+
async retryUntil(fn, predicate, options = {}) {
|
|
219
|
+
const opts = { ...DEFAULT_RETRY_OPTIONS, ...options };
|
|
220
|
+
let lastResult;
|
|
221
|
+
let delay = opts.retryDelay;
|
|
222
|
+
for (let attempt = 1; attempt <= opts.maxRetries + 1; attempt++) {
|
|
223
|
+
try {
|
|
224
|
+
lastResult = await fn();
|
|
225
|
+
if (predicate(lastResult)) {
|
|
226
|
+
return lastResult;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
catch (error) {
|
|
230
|
+
this.logger.trace(`Retry attempt ${attempt} threw error: ${error.message}`);
|
|
231
|
+
}
|
|
232
|
+
if (attempt <= opts.maxRetries) {
|
|
233
|
+
this.logger.debug(`Retry attempt ${attempt}/${opts.maxRetries} - condition not met`);
|
|
234
|
+
await this.sleep(delay);
|
|
235
|
+
delay = Math.floor(delay * opts.backoffMultiplier);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
throw new RetryExhaustedError(`Condition not met after ${opts.maxRetries + 1} attempts`, opts.maxRetries + 1);
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Execute with timeout
|
|
242
|
+
*/
|
|
243
|
+
async withTimeout(fn, timeout, message) {
|
|
244
|
+
return Promise.race([
|
|
245
|
+
fn(),
|
|
246
|
+
new Promise((_, reject) => {
|
|
247
|
+
setTimeout(() => {
|
|
248
|
+
reject(new WaitTimeoutError(message || `Operation timed out after ${timeout}ms`, timeout));
|
|
249
|
+
}, timeout);
|
|
250
|
+
}),
|
|
251
|
+
]);
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Poll a function at regular intervals
|
|
255
|
+
*/
|
|
256
|
+
async poll(fn, interval, timeout) {
|
|
257
|
+
return this.waitFor(fn, { interval, timeout });
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Wait for a value to stabilize (not change for a period)
|
|
261
|
+
*/
|
|
262
|
+
async waitForStable(getValue, stableTime = 500, options = {}) {
|
|
263
|
+
const opts = { ...DEFAULT_WAIT_OPTIONS, ...options };
|
|
264
|
+
const startTime = Date.now();
|
|
265
|
+
let lastValue;
|
|
266
|
+
let stableStartTime;
|
|
267
|
+
while (Date.now() - startTime < opts.timeout) {
|
|
268
|
+
const currentValue = await getValue();
|
|
269
|
+
if (lastValue === undefined ||
|
|
270
|
+
JSON.stringify(lastValue) !== JSON.stringify(currentValue)) {
|
|
271
|
+
lastValue = currentValue;
|
|
272
|
+
stableStartTime = Date.now();
|
|
273
|
+
}
|
|
274
|
+
else if (stableStartTime &&
|
|
275
|
+
Date.now() - stableStartTime >= stableTime) {
|
|
276
|
+
return currentValue;
|
|
277
|
+
}
|
|
278
|
+
await this.sleep(opts.interval);
|
|
279
|
+
}
|
|
280
|
+
throw new WaitTimeoutError(`Value did not stabilize within ${opts.timeout}ms`, opts.timeout);
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Execute functions in sequence with delay between each
|
|
284
|
+
*/
|
|
285
|
+
async sequence(fns, delayBetween = 0) {
|
|
286
|
+
const results = [];
|
|
287
|
+
for (let i = 0; i < fns.length; i++) {
|
|
288
|
+
results.push(await fns[i]());
|
|
289
|
+
if (delayBetween > 0 && i < fns.length - 1) {
|
|
290
|
+
await this.sleep(delayBetween);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return results;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
exports.WaitUtils = WaitUtils;
|
|
297
|
+
// Export singleton instance
|
|
298
|
+
exports.waitUtils = new WaitUtils();
|
|
299
|
+
// Export convenience functions
|
|
300
|
+
const sleep = (ms) => exports.waitUtils.sleep(ms);
|
|
301
|
+
exports.sleep = sleep;
|
|
302
|
+
const waitFor = (condition, options) => exports.waitUtils.waitFor(condition, options);
|
|
303
|
+
exports.waitFor = waitFor;
|
|
304
|
+
const retry = (fn, options) => exports.waitUtils.retry(fn, options);
|
|
305
|
+
exports.retry = retry;
|
|
306
|
+
//# sourceMappingURL=wait.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.utils.js","sourceRoot":"","sources":["../../src/utils/wait.utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web Module - Playwright-based web automation
|
|
3
|
+
*/
|
|
4
|
+
export { WebDriver } from "./web.driver";
|
|
5
|
+
export { WebPage, TypeOptions, ClickOptions, SelectOption, DragDropOptions, } from "./web.page";
|
|
6
|
+
export { WebAssertions, SoftAssertionResult } from "./web.assertions";
|
|
7
|
+
export type { Page, Browser, BrowserContext, Locator as PlaywrightLocator, FrameLocator, ElementHandle, Response, Request, Route, Dialog, Download, FileChooser, ConsoleMessage as PlaywrightConsoleMessage, } from "@playwright/test";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/web/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EACL,OAAO,EACP,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGtE,YAAY,EACV,IAAI,EACJ,OAAO,EACP,cAAc,EACd,OAAO,IAAI,iBAAiB,EAC5B,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,WAAW,EACX,cAAc,IAAI,wBAAwB,GAC3C,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Web Module - Playwright-based web automation
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WebAssertions = exports.WebPage = exports.WebDriver = void 0;
|
|
7
|
+
// Web Driver
|
|
8
|
+
var web_driver_1 = require("./web.driver");
|
|
9
|
+
Object.defineProperty(exports, "WebDriver", { enumerable: true, get: function () { return web_driver_1.WebDriver; } });
|
|
10
|
+
// Web Page (Element Interactions)
|
|
11
|
+
var web_page_1 = require("./web.page");
|
|
12
|
+
Object.defineProperty(exports, "WebPage", { enumerable: true, get: function () { return web_page_1.WebPage; } });
|
|
13
|
+
// Web Assertions
|
|
14
|
+
var web_assertions_1 = require("./web.assertions");
|
|
15
|
+
Object.defineProperty(exports, "WebAssertions", { enumerable: true, get: function () { return web_assertions_1.WebAssertions; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/web/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,aAAa;AACb,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAElB,kCAAkC;AAClC,uCAMoB;AALlB,mGAAA,OAAO,OAAA;AAOT,iBAAiB;AACjB,mDAAsE;AAA7D,+GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { Locator, AssertionOptions } from "../types";
|
|
3
|
+
import { Logger } from "../utils";
|
|
4
|
+
import { WebPage } from "./web.page";
|
|
5
|
+
/**
|
|
6
|
+
* Soft assertion result
|
|
7
|
+
*/
|
|
8
|
+
export interface SoftAssertionResult {
|
|
9
|
+
passed: boolean;
|
|
10
|
+
message: string;
|
|
11
|
+
expected?: unknown;
|
|
12
|
+
actual?: unknown;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* WebAssertions class providing assertion methods for Playwright.
|
|
16
|
+
*/
|
|
17
|
+
export declare class WebAssertions {
|
|
18
|
+
private page;
|
|
19
|
+
private webPage;
|
|
20
|
+
private logger;
|
|
21
|
+
private softErrors;
|
|
22
|
+
constructor(page: Page, webPage: WebPage, logger?: Logger);
|
|
23
|
+
/**
|
|
24
|
+
* Get soft assertion errors
|
|
25
|
+
*/
|
|
26
|
+
getSoftErrors(): SoftAssertionResult[];
|
|
27
|
+
/**
|
|
28
|
+
* Clear soft assertion errors
|
|
29
|
+
*/
|
|
30
|
+
clearSoftErrors(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Check if all soft assertions passed
|
|
33
|
+
*/
|
|
34
|
+
allSoftAssertionsPassed(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Assert all soft assertions and throw if any failed
|
|
37
|
+
*/
|
|
38
|
+
assertAllSoftAssertions(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Handle assertion result
|
|
41
|
+
*/
|
|
42
|
+
private handleAssertion;
|
|
43
|
+
/**
|
|
44
|
+
* Get Playwright locator from string or Locator object
|
|
45
|
+
*/
|
|
46
|
+
private getLocator;
|
|
47
|
+
/**
|
|
48
|
+
* Assert page title
|
|
49
|
+
*/
|
|
50
|
+
assertTitle(expected: string | RegExp, options?: AssertionOptions): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Assert page title contains
|
|
53
|
+
*/
|
|
54
|
+
assertTitleContains(expected: string, options?: AssertionOptions): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Assert page URL
|
|
57
|
+
*/
|
|
58
|
+
assertUrl(expected: string | RegExp, options?: AssertionOptions): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Assert page URL contains
|
|
61
|
+
*/
|
|
62
|
+
assertUrlContains(expected: string, options?: AssertionOptions): Promise<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Assert element is visible
|
|
65
|
+
*/
|
|
66
|
+
assertVisible(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Assert element is not visible / hidden
|
|
69
|
+
*/
|
|
70
|
+
assertHidden(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
71
|
+
/**
|
|
72
|
+
* Assert element exists in DOM
|
|
73
|
+
*/
|
|
74
|
+
assertExists(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Assert element does not exist in DOM
|
|
77
|
+
*/
|
|
78
|
+
assertNotExists(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Assert element is enabled
|
|
81
|
+
*/
|
|
82
|
+
assertEnabled(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Assert element is disabled
|
|
85
|
+
*/
|
|
86
|
+
assertDisabled(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Assert checkbox/radio is checked
|
|
89
|
+
*/
|
|
90
|
+
assertChecked(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Assert checkbox/radio is not checked
|
|
93
|
+
*/
|
|
94
|
+
assertNotChecked(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Assert element is focused
|
|
97
|
+
*/
|
|
98
|
+
assertFocused(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Assert element has exact text
|
|
101
|
+
*/
|
|
102
|
+
assertText(locator: Locator | string, expected: string | RegExp, options?: AssertionOptions): Promise<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Assert element contains text
|
|
105
|
+
*/
|
|
106
|
+
assertTextContains(locator: Locator | string, expected: string, options?: AssertionOptions): Promise<void>;
|
|
107
|
+
/**
|
|
108
|
+
* Assert element has empty text
|
|
109
|
+
*/
|
|
110
|
+
assertTextEmpty(locator: Locator | string, options?: AssertionOptions): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* Assert input has value
|
|
113
|
+
*/
|
|
114
|
+
assertValue(locator: Locator | string, expected: string | RegExp, options?: AssertionOptions): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Assert input value contains
|
|
117
|
+
*/
|
|
118
|
+
assertValueContains(locator: Locator | string, expected: string, options?: AssertionOptions): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* Assert element has attribute with value
|
|
121
|
+
*/
|
|
122
|
+
assertAttribute(locator: Locator | string, name: string, expected: string | RegExp, options?: AssertionOptions): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Assert element has attribute (any value)
|
|
125
|
+
*/
|
|
126
|
+
assertHasAttribute(locator: Locator | string, name: string, options?: AssertionOptions): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Assert element has CSS class
|
|
129
|
+
*/
|
|
130
|
+
assertHasClass(locator: Locator | string, className: string, options?: AssertionOptions): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Assert element count
|
|
133
|
+
*/
|
|
134
|
+
assertCount(locator: Locator | string, expected: number, options?: AssertionOptions): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Assert element count greater than
|
|
137
|
+
*/
|
|
138
|
+
assertCountGreaterThan(locator: Locator | string, expected: number, options?: AssertionOptions): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Assert element count less than
|
|
141
|
+
*/
|
|
142
|
+
assertCountLessThan(locator: Locator | string, expected: number, options?: AssertionOptions): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Assert condition is true
|
|
145
|
+
*/
|
|
146
|
+
assertTrue(condition: boolean, message: string, options?: AssertionOptions): void;
|
|
147
|
+
/**
|
|
148
|
+
* Assert condition is false
|
|
149
|
+
*/
|
|
150
|
+
assertFalse(condition: boolean, message: string, options?: AssertionOptions): void;
|
|
151
|
+
/**
|
|
152
|
+
* Assert values are equal
|
|
153
|
+
*/
|
|
154
|
+
assertEqual<T>(actual: T, expected: T, message?: string, options?: AssertionOptions): void;
|
|
155
|
+
/**
|
|
156
|
+
* Assert values are not equal
|
|
157
|
+
*/
|
|
158
|
+
assertNotEqual<T>(actual: T, notExpected: T, message?: string, options?: AssertionOptions): void;
|
|
159
|
+
/**
|
|
160
|
+
* Always fail with message
|
|
161
|
+
*/
|
|
162
|
+
fail(message: string, options?: AssertionOptions): void;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=web.assertions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.assertions.d.ts","sourceRoot":"","sources":["../../src/web/web.assertions.ts"],"names":[],"mappings":"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"}
|