@yasserkhanorg/e2e-agents 0.7.5 → 0.7.6
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":"plan_builder.d.ts","sourceRoot":"","sources":["../../src/engine/plan_builder.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAC,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAG3D,OAAO,KAAK,EACR,UAAU,EACV,SAAS,EACT,kBAAkB,EAIrB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAC,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAC,CAAC;AAqOxD,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EACtC,YAAY,CAAC,EAAE,kBAAkB,GAClC,UAAU,CA0IZ;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAMzE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"plan_builder.d.ts","sourceRoot":"","sources":["../../src/engine/plan_builder.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAC,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,oBAAoB,CAAC;AAG3D,OAAO,KAAK,EACR,UAAU,EACV,SAAS,EACT,kBAAkB,EAIrB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAC,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAC,CAAC;AAqOxD,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,YAAY,EACpB,cAAc,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,EACtC,YAAY,CAAC,EAAE,kBAAkB,GAClC,UAAU,CA0IZ;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAMzE;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAkGhE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,SAAiC,GAAG,MAAM,CAMvH"}
|
|
@@ -384,38 +384,33 @@ function renderCiSummaryMarkdown(plan) {
|
|
|
384
384
|
lines.push('');
|
|
385
385
|
}
|
|
386
386
|
}
|
|
387
|
-
// ── Advisory: covered flows with new behavior
|
|
387
|
+
// ── Advisory: covered flows with new behavior (collapsible) ─────────────
|
|
388
388
|
if (flowsWithAdvisory.length > 0) {
|
|
389
389
|
lines.push('');
|
|
390
|
-
lines.push(
|
|
390
|
+
lines.push(`<details>`);
|
|
391
|
+
lines.push(`<summary>💡 New behavior detected in ${flowsWithAdvisory.length} covered feature${flowsWithAdvisory.length !== 1 ? 's' : ''} — consider adding tests</summary>`);
|
|
391
392
|
lines.push('');
|
|
392
393
|
lines.push('These features already have E2E tests, but this PR introduces new behavior worth covering:');
|
|
393
394
|
lines.push('');
|
|
394
395
|
for (const flow of flowsWithAdvisory) {
|
|
395
|
-
lines.push(
|
|
396
|
-
lines.push(
|
|
397
|
-
lines.push(
|
|
398
|
-
lines.push(`> Consider adding tests for:`);
|
|
396
|
+
lines.push(`#### ${flow.name} · ${flow.priority}`);
|
|
397
|
+
lines.push(`*${flow.coveredBy.join(', ')}*`);
|
|
398
|
+
lines.push('');
|
|
399
399
|
for (const s of flow.advisoryScenarios) {
|
|
400
|
-
lines.push(
|
|
400
|
+
lines.push(`- [ ] ${s}`);
|
|
401
401
|
}
|
|
402
402
|
lines.push('');
|
|
403
403
|
}
|
|
404
|
+
lines.push('</details>');
|
|
404
405
|
}
|
|
405
406
|
// ── Clean covered flows (collapsed) ───────────────────────────────────────
|
|
406
|
-
if (cleanFlows.length > 0
|
|
407
|
+
if (cleanFlows.length > 0) {
|
|
407
408
|
lines.push('');
|
|
408
|
-
|
|
409
|
-
? `✅ Covered flows (${cleanFlows.length})`
|
|
410
|
-
: `✅ All covered flows have advisory notes above`;
|
|
411
|
-
lines.push(`<details><summary>${label}</summary>`);
|
|
409
|
+
lines.push(`<details><summary>✅ Covered flows (${cleanFlows.length})</summary>`);
|
|
412
410
|
lines.push('');
|
|
413
411
|
for (const flow of cleanFlows) {
|
|
414
412
|
lines.push(`- **${flow.name}** [${flow.priority}] — ${flow.coveredBy.join(', ')}`);
|
|
415
413
|
}
|
|
416
|
-
for (const flow of flowsWithAdvisory) {
|
|
417
|
-
lines.push(`- **${flow.name}** [${flow.priority}] — ${flow.coveredBy.join(', ')} 💡`);
|
|
418
|
-
}
|
|
419
414
|
lines.push('');
|
|
420
415
|
lines.push('</details>');
|
|
421
416
|
}
|
|
@@ -378,38 +378,33 @@ export function renderCiSummaryMarkdown(plan) {
|
|
|
378
378
|
lines.push('');
|
|
379
379
|
}
|
|
380
380
|
}
|
|
381
|
-
// ── Advisory: covered flows with new behavior
|
|
381
|
+
// ── Advisory: covered flows with new behavior (collapsible) ─────────────
|
|
382
382
|
if (flowsWithAdvisory.length > 0) {
|
|
383
383
|
lines.push('');
|
|
384
|
-
lines.push(
|
|
384
|
+
lines.push(`<details>`);
|
|
385
|
+
lines.push(`<summary>💡 New behavior detected in ${flowsWithAdvisory.length} covered feature${flowsWithAdvisory.length !== 1 ? 's' : ''} — consider adding tests</summary>`);
|
|
385
386
|
lines.push('');
|
|
386
387
|
lines.push('These features already have E2E tests, but this PR introduces new behavior worth covering:');
|
|
387
388
|
lines.push('');
|
|
388
389
|
for (const flow of flowsWithAdvisory) {
|
|
389
|
-
lines.push(
|
|
390
|
-
lines.push(
|
|
391
|
-
lines.push(
|
|
392
|
-
lines.push(`> Consider adding tests for:`);
|
|
390
|
+
lines.push(`#### ${flow.name} · ${flow.priority}`);
|
|
391
|
+
lines.push(`*${flow.coveredBy.join(', ')}*`);
|
|
392
|
+
lines.push('');
|
|
393
393
|
for (const s of flow.advisoryScenarios) {
|
|
394
|
-
lines.push(
|
|
394
|
+
lines.push(`- [ ] ${s}`);
|
|
395
395
|
}
|
|
396
396
|
lines.push('');
|
|
397
397
|
}
|
|
398
|
+
lines.push('</details>');
|
|
398
399
|
}
|
|
399
400
|
// ── Clean covered flows (collapsed) ───────────────────────────────────────
|
|
400
|
-
if (cleanFlows.length > 0
|
|
401
|
+
if (cleanFlows.length > 0) {
|
|
401
402
|
lines.push('');
|
|
402
|
-
|
|
403
|
-
? `✅ Covered flows (${cleanFlows.length})`
|
|
404
|
-
: `✅ All covered flows have advisory notes above`;
|
|
405
|
-
lines.push(`<details><summary>${label}</summary>`);
|
|
403
|
+
lines.push(`<details><summary>✅ Covered flows (${cleanFlows.length})</summary>`);
|
|
406
404
|
lines.push('');
|
|
407
405
|
for (const flow of cleanFlows) {
|
|
408
406
|
lines.push(`- **${flow.name}** [${flow.priority}] — ${flow.coveredBy.join(', ')}`);
|
|
409
407
|
}
|
|
410
|
-
for (const flow of flowsWithAdvisory) {
|
|
411
|
-
lines.push(`- **${flow.name}** [${flow.priority}] — ${flow.coveredBy.join(', ')} 💡`);
|
|
412
|
-
}
|
|
413
408
|
lines.push('');
|
|
414
409
|
lines.push('</details>');
|
|
415
410
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yasserkhanorg/e2e-agents",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.6",
|
|
4
4
|
"description": "Pluggable LLM provider library for AI-powered test automation. Use Claude, Ollama, or your own LLM. Integrate with Playwright, Jest, or any test framework. MCP server for test agents, cost tracking, and hybrid provider mode.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|