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.
@@ -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,EAGV,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;CACpB;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,CAqL5B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA2DpE;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
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 stepError;
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
- const assertResult = await browser.assert(step.instruction);
283
- stepPassed = assertResult.passed;
284
- actualValue = String(assertResult.actual);
285
- if (!assertResult.passed) {
286
- stepError = assertResult.message;
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
- console.log(` ✓ Passed (${Date.now() - stepStartTime}ms)`);
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: stepError,
465
+ error: stepErrorObj,
325
466
  screenshot,
326
467
  actualValue,
327
468
  });
328
- // Stop test if step failed and not continuing on failure
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
- // Failed test details
395
- const failedTests = result.testResults.filter(t => !t.passed);
396
- if (failedTests.length > 0) {
397
- lines.push("❌ FAILED TESTS");
398
- lines.push("─".repeat(60));
399
- for (const test of failedTests) {
400
- lines.push(`\n 📋 ${test.name}`);
401
- const failedSteps = test.stepResults.filter(s => !s.passed);
402
- for (const step of failedSteps) {
403
- lines.push(` ✗ ${step.instruction}`);
404
- if (step.error) {
405
- lines.push(` Error: ${step.error}`);
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(` Screenshot: ${step.screenshot}`);
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?: string;
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