cbrowser 7.4.13 → 7.4.15
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/browser.d.ts +28 -1
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +321 -0
- package/dist/browser.js.map +1 -1
- package/dist/cli.js +66 -0
- package/dist/cli.js.map +1 -1
- package/dist/mcp-server-remote.d.ts.map +1 -1
- package/dist/mcp-server-remote.js +82 -11
- package/dist/mcp-server-remote.js.map +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +80 -9
- package/dist/mcp-server.js.map +1 -1
- package/dist/testing/nl-test-suite.d.ts +15 -0
- package/dist/testing/nl-test-suite.d.ts.map +1 -1
- package/dist/testing/nl-test-suite.js +195 -31
- package/dist/testing/nl-test-suite.js.map +1 -1
- package/dist/types.d.ts +56 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nl-test-suite.d.ts","sourceRoot":"","sources":["../../src/testing/nl-test-suite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,
|
|
1
|
+
{"version":3,"file":"nl-test-suite.d.ts","sourceRoot":"","sources":["../../src/testing/nl-test-suite.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EAIV,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAErB;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,CAwIlE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,MAAwB,GAClC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,CA0CvC;AAED,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kCAAkC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAqED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC,CAAA;CAAE,CAQvE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,EAAE,CAAA;CAAE,EAC5C,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CA+O5B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAoFpE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
8
|
exports.parseNLInstruction = parseNLInstruction;
|
|
9
9
|
exports.parseNLTestSuite = parseNLTestSuite;
|
|
10
|
+
exports.dryRunNLTestSuite = dryRunNLTestSuite;
|
|
10
11
|
exports.runNLTestSuite = runNLTestSuite;
|
|
11
12
|
exports.formatNLTestReport = formatNLTestReport;
|
|
12
13
|
exports.runNLTestFile = runNLTestFile;
|
|
@@ -203,16 +204,92 @@ function parseNLTestSuite(text, suiteName = "Unnamed Suite") {
|
|
|
203
204
|
}
|
|
204
205
|
return { name: suiteName, tests };
|
|
205
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Find partial text matches for a failed content assertion.
|
|
209
|
+
*/
|
|
210
|
+
function findPartialMatches(pageText, expected, maxResults = 3) {
|
|
211
|
+
if (!pageText || !expected)
|
|
212
|
+
return [];
|
|
213
|
+
const lowerPage = pageText.toLowerCase();
|
|
214
|
+
const lowerExpected = expected.toLowerCase();
|
|
215
|
+
const matches = [];
|
|
216
|
+
// Check word-by-word overlap
|
|
217
|
+
const words = lowerExpected.split(/\s+/).filter(w => w.length > 2);
|
|
218
|
+
for (const word of words) {
|
|
219
|
+
const idx = lowerPage.indexOf(word);
|
|
220
|
+
if (idx !== -1) {
|
|
221
|
+
// Extract surrounding context (up to 60 chars)
|
|
222
|
+
const start = Math.max(0, idx - 20);
|
|
223
|
+
const end = Math.min(pageText.length, idx + word.length + 40);
|
|
224
|
+
const context = pageText.substring(start, end).trim();
|
|
225
|
+
if (!matches.some(m => m.includes(context.substring(0, 20)))) {
|
|
226
|
+
matches.push(context);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (matches.length >= maxResults)
|
|
230
|
+
break;
|
|
231
|
+
}
|
|
232
|
+
return matches;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Generate a suggestion for a failed assertion step.
|
|
236
|
+
*/
|
|
237
|
+
function generateAssertionSuggestion(step, actual, partialMatches) {
|
|
238
|
+
if (step.assertionType === "contains" && partialMatches && partialMatches.length > 0) {
|
|
239
|
+
return `Partial matches found on the page. Try: verify page contains "${partialMatches[0].substring(0, 50)}"`;
|
|
240
|
+
}
|
|
241
|
+
if (step.assertionType === "equals" && actual) {
|
|
242
|
+
return `Actual value is "${actual}". Try using 'contains' instead of exact match: verify title contains "${step.target}"`;
|
|
243
|
+
}
|
|
244
|
+
if (step.assertionType === "exists") {
|
|
245
|
+
return `Element "${step.target}" not found. Check if the element has loaded or try a more specific selector.`;
|
|
246
|
+
}
|
|
247
|
+
return `Assertion failed. Try using --fuzzy-match for case-insensitive partial matching.`;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Generate recommendations from failed test results.
|
|
251
|
+
*/
|
|
252
|
+
function generateRecommendations(testResults) {
|
|
253
|
+
const recs = [];
|
|
254
|
+
const failedSteps = testResults.flatMap(t => t.stepResults.filter(s => !s.passed));
|
|
255
|
+
for (const step of failedSteps) {
|
|
256
|
+
if (step.error?.partialMatches && step.error.partialMatches.length > 0) {
|
|
257
|
+
recs.push(`Step "${step.instruction}" failed on exact match but found similar text. Consider using fuzzy matching.`);
|
|
258
|
+
}
|
|
259
|
+
if (step.action === "click" && step.error?.reason?.includes("Failed to click")) {
|
|
260
|
+
recs.push(`Click "${step.parsed?.target}" failed. Try using a more specific selector or check if an overlay is blocking.`);
|
|
261
|
+
}
|
|
262
|
+
if (step.action === "navigate" && step.error) {
|
|
263
|
+
recs.push(`Navigation to "${step.parsed?.target}" failed. Verify the URL is accessible.`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// Deduplicate
|
|
267
|
+
return [...new Set(recs)].slice(0, 5);
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Dry-run a test suite: parse all instructions and return without executing.
|
|
271
|
+
*/
|
|
272
|
+
function dryRunNLTestSuite(suite) {
|
|
273
|
+
return {
|
|
274
|
+
name: suite.name,
|
|
275
|
+
tests: suite.tests.map(t => ({
|
|
276
|
+
name: t.name,
|
|
277
|
+
steps: t.steps,
|
|
278
|
+
})),
|
|
279
|
+
};
|
|
280
|
+
}
|
|
206
281
|
/**
|
|
207
282
|
* Run a natural language test suite.
|
|
208
283
|
*/
|
|
209
284
|
async function runNLTestSuite(suite, options = {}) {
|
|
210
|
-
const { stepTimeout = 30000, continueOnFailure = true, screenshotOnFailure = true, headless = true, } = options;
|
|
285
|
+
const { stepTimeout = 30000, continueOnFailure = true, screenshotOnFailure = true, headless = true, fuzzyMatch = false, } = options;
|
|
211
286
|
const startTime = Date.now();
|
|
212
287
|
const testResults = [];
|
|
213
288
|
console.log(`\n🧪 Running Test Suite: ${suite.name}`);
|
|
214
289
|
console.log(` Tests: ${suite.tests.length}`);
|
|
215
290
|
console.log(` Continue on failure: ${continueOnFailure}`);
|
|
291
|
+
if (fuzzyMatch)
|
|
292
|
+
console.log(` Fuzzy matching: enabled`);
|
|
216
293
|
console.log("");
|
|
217
294
|
const browser = new browser_js_1.CBrowser({
|
|
218
295
|
headless,
|
|
@@ -227,13 +304,13 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
227
304
|
let testError;
|
|
228
305
|
for (const step of test.steps) {
|
|
229
306
|
console.log(` → ${step.instruction}`);
|
|
307
|
+
console.log(` [${step.action}${step.target ? `: ${step.target}` : ""}${step.value ? ` = "${step.value}"` : ""}]`);
|
|
230
308
|
const stepStartTime = Date.now();
|
|
231
309
|
let stepPassed = true;
|
|
232
|
-
let
|
|
310
|
+
let stepErrorObj;
|
|
233
311
|
let screenshot;
|
|
234
312
|
let actualValue;
|
|
235
313
|
try {
|
|
236
|
-
// Execute the step based on action type
|
|
237
314
|
switch (step.action) {
|
|
238
315
|
case "navigate": {
|
|
239
316
|
await browser.navigate(step.target || "");
|
|
@@ -256,7 +333,6 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
256
333
|
}
|
|
257
334
|
case "scroll": {
|
|
258
335
|
const direction = step.target?.toLowerCase() === "up" ? -500 : 500;
|
|
259
|
-
// Use private page access through cast
|
|
260
336
|
const page = browser.page;
|
|
261
337
|
if (page) {
|
|
262
338
|
await page.evaluate((d) => window.scrollBy(0, d), direction);
|
|
@@ -265,25 +341,67 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
265
341
|
}
|
|
266
342
|
case "wait": {
|
|
267
343
|
if (step.target) {
|
|
268
|
-
// Wait for text to appear - use private page access
|
|
269
344
|
const page = browser.page;
|
|
270
345
|
if (page) {
|
|
271
346
|
await page.waitForSelector(`text=${step.target}`, { timeout: stepTimeout });
|
|
272
347
|
}
|
|
273
348
|
}
|
|
274
349
|
else {
|
|
275
|
-
// Wait for duration
|
|
276
350
|
const ms = parseFloat(step.value || "1") * 1000;
|
|
277
351
|
await new Promise(r => setTimeout(r, ms));
|
|
278
352
|
}
|
|
279
353
|
break;
|
|
280
354
|
}
|
|
281
355
|
case "assert": {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
356
|
+
if (fuzzyMatch && step.assertionType === "contains") {
|
|
357
|
+
// Fuzzy match: case-insensitive substring with normalized whitespace
|
|
358
|
+
const page = await browser.getPage();
|
|
359
|
+
if (step.target) {
|
|
360
|
+
const expected = step.target.toLowerCase().replace(/\s+/g, " ").trim();
|
|
361
|
+
const title = (await page.title()).toLowerCase().replace(/\s+/g, " ").trim();
|
|
362
|
+
const bodyText = (await page.evaluate(() => document.body?.innerText || "")).toLowerCase().replace(/\s+/g, " ").trim();
|
|
363
|
+
const url = page.url().toLowerCase();
|
|
364
|
+
let matched = false;
|
|
365
|
+
if (step.assertionType === "contains") {
|
|
366
|
+
matched = bodyText.includes(expected) || title.includes(expected) || url.includes(expected);
|
|
367
|
+
}
|
|
368
|
+
stepPassed = matched;
|
|
369
|
+
actualValue = matched ? `Found (fuzzy)` : `Not found`;
|
|
370
|
+
if (!matched) {
|
|
371
|
+
const partialMatches = findPartialMatches(bodyText, expected);
|
|
372
|
+
stepErrorObj = {
|
|
373
|
+
reason: "Fuzzy match failed",
|
|
374
|
+
expected: step.target,
|
|
375
|
+
actual: `Page text does not contain "${step.target}" (case-insensitive)`,
|
|
376
|
+
partialMatches,
|
|
377
|
+
suggestion: generateAssertionSuggestion(step, actualValue, partialMatches),
|
|
378
|
+
};
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
const assertResult = await browser.assert(step.instruction);
|
|
384
|
+
stepPassed = assertResult.passed;
|
|
385
|
+
actualValue = String(assertResult.actual);
|
|
386
|
+
if (!assertResult.passed) {
|
|
387
|
+
// Enrich the error with partial matches
|
|
388
|
+
let partialMatches;
|
|
389
|
+
if (step.assertionType === "contains" && step.target) {
|
|
390
|
+
try {
|
|
391
|
+
const page = await browser.getPage();
|
|
392
|
+
const pageText = await page.evaluate(() => document.body?.innerText || "");
|
|
393
|
+
partialMatches = findPartialMatches(pageText, step.target);
|
|
394
|
+
}
|
|
395
|
+
catch { }
|
|
396
|
+
}
|
|
397
|
+
stepErrorObj = {
|
|
398
|
+
reason: assertResult.message,
|
|
399
|
+
actual: assertResult.actual !== undefined ? String(assertResult.actual) : undefined,
|
|
400
|
+
expected: assertResult.expected !== undefined ? String(assertResult.expected) : step.target,
|
|
401
|
+
partialMatches,
|
|
402
|
+
suggestion: generateAssertionSuggestion(step, actualValue, partialMatches),
|
|
403
|
+
};
|
|
404
|
+
}
|
|
287
405
|
}
|
|
288
406
|
break;
|
|
289
407
|
}
|
|
@@ -292,7 +410,6 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
292
410
|
break;
|
|
293
411
|
}
|
|
294
412
|
case "unknown": {
|
|
295
|
-
// Try to interpret as a click or fill
|
|
296
413
|
console.log(` ⚠️ Unknown instruction, attempting smart interpretation...`);
|
|
297
414
|
const result = await browser.smartClick(step.target || step.instruction);
|
|
298
415
|
if (!result.success) {
|
|
@@ -301,13 +418,36 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
301
418
|
break;
|
|
302
419
|
}
|
|
303
420
|
}
|
|
304
|
-
|
|
421
|
+
if (stepPassed) {
|
|
422
|
+
console.log(` ✓ Passed (${Date.now() - stepStartTime}ms)`);
|
|
423
|
+
}
|
|
424
|
+
else {
|
|
425
|
+
testPassed = false;
|
|
426
|
+
testError = testError || stepErrorObj?.reason || "Assertion failed";
|
|
427
|
+
console.log(` ✗ Failed: ${stepErrorObj?.reason || "Assertion failed"}`);
|
|
428
|
+
if (stepErrorObj?.suggestion) {
|
|
429
|
+
console.log(` 💡 ${stepErrorObj.suggestion}`);
|
|
430
|
+
}
|
|
431
|
+
if (screenshotOnFailure) {
|
|
432
|
+
try {
|
|
433
|
+
screenshot = await browser.screenshot();
|
|
434
|
+
}
|
|
435
|
+
catch { }
|
|
436
|
+
}
|
|
437
|
+
}
|
|
305
438
|
}
|
|
306
439
|
catch (e) {
|
|
307
440
|
stepPassed = false;
|
|
308
|
-
stepError = e.message;
|
|
309
441
|
testPassed = false;
|
|
310
442
|
testError = testError || e.message;
|
|
443
|
+
stepErrorObj = {
|
|
444
|
+
reason: e.message,
|
|
445
|
+
suggestion: step.action === "click"
|
|
446
|
+
? `Try using a more specific selector or check if an overlay is blocking.`
|
|
447
|
+
: step.action === "fill"
|
|
448
|
+
? `Check if the form field is visible and not disabled.`
|
|
449
|
+
: undefined,
|
|
450
|
+
};
|
|
311
451
|
console.log(` ✗ Failed: ${e.message}`);
|
|
312
452
|
if (screenshotOnFailure) {
|
|
313
453
|
try {
|
|
@@ -318,17 +458,16 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
318
458
|
}
|
|
319
459
|
stepResults.push({
|
|
320
460
|
instruction: step.instruction,
|
|
461
|
+
parsed: step,
|
|
321
462
|
action: step.action,
|
|
322
463
|
passed: stepPassed,
|
|
323
464
|
duration: Date.now() - stepStartTime,
|
|
324
|
-
error:
|
|
465
|
+
error: stepErrorObj,
|
|
325
466
|
screenshot,
|
|
326
467
|
actualValue,
|
|
327
468
|
});
|
|
328
|
-
|
|
329
|
-
if (!stepPassed && !continueOnFailure) {
|
|
469
|
+
if (!stepPassed && !continueOnFailure)
|
|
330
470
|
break;
|
|
331
|
-
}
|
|
332
471
|
}
|
|
333
472
|
testResults.push({
|
|
334
473
|
name: test.name,
|
|
@@ -345,6 +484,7 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
345
484
|
}
|
|
346
485
|
const passed = testResults.filter(t => t.passed).length;
|
|
347
486
|
const failed = testResults.filter(t => !t.passed).length;
|
|
487
|
+
const recommendations = generateRecommendations(testResults);
|
|
348
488
|
const result = {
|
|
349
489
|
name: suite.name,
|
|
350
490
|
timestamp: new Date().toISOString(),
|
|
@@ -357,6 +497,7 @@ async function runNLTestSuite(suite, options = {}) {
|
|
|
357
497
|
skipped: 0,
|
|
358
498
|
passRate: suite.tests.length > 0 ? (passed / suite.tests.length) * 100 : 0,
|
|
359
499
|
},
|
|
500
|
+
recommendations: recommendations.length > 0 ? recommendations : undefined,
|
|
360
501
|
};
|
|
361
502
|
return result;
|
|
362
503
|
}
|
|
@@ -391,26 +532,49 @@ function formatNLTestReport(result) {
|
|
|
391
532
|
}
|
|
392
533
|
lines.push("└───────────────────────────────────────┴──────────┴──────────┴────────────────────┘");
|
|
393
534
|
lines.push("");
|
|
394
|
-
//
|
|
395
|
-
const
|
|
396
|
-
|
|
397
|
-
lines.push(
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
535
|
+
// Step-level details for all tests
|
|
536
|
+
for (const test of result.testResults) {
|
|
537
|
+
const icon = test.passed ? "✅" : "❌";
|
|
538
|
+
lines.push(`${icon} ${test.name}`);
|
|
539
|
+
for (const step of test.stepResults) {
|
|
540
|
+
const stepIcon = step.passed ? " ✓" : " ✗";
|
|
541
|
+
const parsedInfo = step.parsed
|
|
542
|
+
? `[${step.parsed.action}${step.parsed.target ? `: ${step.parsed.target}` : ""}${step.parsed.value ? ` = "${step.parsed.value}"` : ""}]`
|
|
543
|
+
: "";
|
|
544
|
+
lines.push(`${stepIcon} ${step.instruction} ${parsedInfo} (${step.duration}ms)`);
|
|
545
|
+
if (!step.passed && step.error) {
|
|
546
|
+
lines.push(` Error: ${step.error.reason}`);
|
|
547
|
+
if (step.error.expected) {
|
|
548
|
+
lines.push(` Expected: ${step.error.expected}`);
|
|
549
|
+
}
|
|
550
|
+
if (step.error.actual) {
|
|
551
|
+
lines.push(` Actual: ${step.error.actual}`);
|
|
552
|
+
}
|
|
553
|
+
if (step.error.partialMatches && step.error.partialMatches.length > 0) {
|
|
554
|
+
lines.push(` Partial matches:`);
|
|
555
|
+
for (const match of step.error.partialMatches) {
|
|
556
|
+
lines.push(` - "${match}"`);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
if (step.error.suggestion) {
|
|
560
|
+
lines.push(` 💡 ${step.error.suggestion}`);
|
|
406
561
|
}
|
|
407
562
|
if (step.screenshot) {
|
|
408
|
-
lines.push(`
|
|
563
|
+
lines.push(` Screenshot: ${step.screenshot}`);
|
|
409
564
|
}
|
|
410
565
|
}
|
|
411
566
|
}
|
|
412
567
|
lines.push("");
|
|
413
568
|
}
|
|
569
|
+
// Recommendations
|
|
570
|
+
if (result.recommendations && result.recommendations.length > 0) {
|
|
571
|
+
lines.push("💡 RECOMMENDATIONS");
|
|
572
|
+
lines.push("─".repeat(60));
|
|
573
|
+
for (const rec of result.recommendations) {
|
|
574
|
+
lines.push(` • ${rec}`);
|
|
575
|
+
}
|
|
576
|
+
lines.push("");
|
|
577
|
+
}
|
|
414
578
|
return lines.join("\n");
|
|
415
579
|
}
|
|
416
580
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nl-test-suite.js","sourceRoot":"","sources":["../../src/testing/nl-test-suite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nl-test-suite.js","sourceRoot":"","sources":["../../src/testing/nl-test-suite.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -182,12 +182,28 @@ export interface NLTestCase {
|
|
|
182
182
|
/** Parsed test steps */
|
|
183
183
|
steps: NLTestStep[];
|
|
184
184
|
}
|
|
185
|
+
/** Enriched error info for NL test step failures (v7.4.15) */
|
|
186
|
+
export interface NLTestStepError {
|
|
187
|
+
/** Why the step failed */
|
|
188
|
+
reason: string;
|
|
189
|
+
/** What was actually found */
|
|
190
|
+
actual?: string;
|
|
191
|
+
/** What was expected */
|
|
192
|
+
expected?: string;
|
|
193
|
+
/** Partial text matches found on the page */
|
|
194
|
+
partialMatches?: string[];
|
|
195
|
+
/** AI-generated suggestion for fixing the test */
|
|
196
|
+
suggestion?: string;
|
|
197
|
+
}
|
|
185
198
|
export interface NLTestStepResult {
|
|
186
199
|
instruction: string;
|
|
200
|
+
/** Parsed interpretation of the instruction */
|
|
201
|
+
parsed: NLTestStep;
|
|
187
202
|
action: NLTestStep["action"];
|
|
188
203
|
passed: boolean;
|
|
189
204
|
duration: number;
|
|
190
|
-
error
|
|
205
|
+
/** Enriched error information */
|
|
206
|
+
error?: NLTestStepError;
|
|
191
207
|
screenshot?: string;
|
|
192
208
|
actualValue?: string;
|
|
193
209
|
}
|
|
@@ -215,6 +231,8 @@ export interface NLTestSuiteResult {
|
|
|
215
231
|
skipped: number;
|
|
216
232
|
passRate: number;
|
|
217
233
|
};
|
|
234
|
+
/** AI-generated recommendations for fixing failures */
|
|
235
|
+
recommendations?: string[];
|
|
218
236
|
}
|
|
219
237
|
/** Type of failure that was detected */
|
|
220
238
|
export type FailureType = "selector_not_found" | "assertion_failed" | "timeout" | "navigation_failed" | "element_not_interactable" | "unknown";
|
|
@@ -1486,4 +1504,41 @@ export interface ABSuiteResult {
|
|
|
1486
1504
|
/** Timestamp */
|
|
1487
1505
|
timestamp: string;
|
|
1488
1506
|
}
|
|
1507
|
+
/** Supported overlay types for detection */
|
|
1508
|
+
export type OverlayType = "cookie" | "age-verify" | "newsletter" | "custom" | "unknown";
|
|
1509
|
+
/** Pattern definition for overlay detection */
|
|
1510
|
+
export interface OverlayPattern {
|
|
1511
|
+
type: OverlayType;
|
|
1512
|
+
selectors: string[];
|
|
1513
|
+
closeButtons: string[];
|
|
1514
|
+
}
|
|
1515
|
+
/** Options for dismissing overlays */
|
|
1516
|
+
export interface DismissOverlayOptions {
|
|
1517
|
+
type?: "auto" | OverlayType;
|
|
1518
|
+
customSelector?: string;
|
|
1519
|
+
timeout?: number;
|
|
1520
|
+
}
|
|
1521
|
+
/** Result of overlay detection */
|
|
1522
|
+
export interface DetectedOverlay {
|
|
1523
|
+
type: OverlayType;
|
|
1524
|
+
selector: string;
|
|
1525
|
+
text: string;
|
|
1526
|
+
zIndex: number;
|
|
1527
|
+
position: string;
|
|
1528
|
+
}
|
|
1529
|
+
/** Result of overlay dismissal */
|
|
1530
|
+
export interface DismissOverlayResult {
|
|
1531
|
+
dismissed: boolean;
|
|
1532
|
+
overlaysFound: number;
|
|
1533
|
+
overlaysDismissed: number;
|
|
1534
|
+
details: Array<{
|
|
1535
|
+
type: OverlayType;
|
|
1536
|
+
selector: string;
|
|
1537
|
+
dismissed: boolean;
|
|
1538
|
+
closeMethod?: string;
|
|
1539
|
+
error?: string;
|
|
1540
|
+
}>;
|
|
1541
|
+
screenshot: string;
|
|
1542
|
+
suggestion?: string;
|
|
1543
|
+
}
|
|
1489
1544
|
//# sourceMappingURL=types.d.ts.map
|