agentic-qe 3.6.15 → 3.6.16

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.
Files changed (51) hide show
  1. package/.claude/skills/skills-manifest.json +1 -1
  2. package/package.json +1 -1
  3. package/v3/CHANGELOG.md +23 -0
  4. package/v3/dist/cli/bundle.js +362 -28
  5. package/v3/dist/cli/completions/index.d.ts +1 -1
  6. package/v3/dist/cli/completions/index.d.ts.map +1 -1
  7. package/v3/dist/cli/completions/index.js +1 -1
  8. package/v3/dist/cli/completions/index.js.map +1 -1
  9. package/v3/dist/cli/wizards/test-wizard.d.ts +1 -1
  10. package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
  11. package/v3/dist/cli/wizards/test-wizard.js +8 -1
  12. package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
  13. package/v3/dist/coordination/task-executor.js.map +1 -1
  14. package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -1
  15. package/v3/dist/domains/test-generation/factories/test-generator-factory.js +4 -1
  16. package/v3/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -1
  17. package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts.map +1 -1
  18. package/v3/dist/domains/test-generation/generators/base-test-generator.js +26 -1
  19. package/v3/dist/domains/test-generation/generators/base-test-generator.js.map +1 -1
  20. package/v3/dist/domains/test-generation/generators/index.d.ts +1 -0
  21. package/v3/dist/domains/test-generation/generators/index.d.ts.map +1 -1
  22. package/v3/dist/domains/test-generation/generators/index.js +1 -0
  23. package/v3/dist/domains/test-generation/generators/index.js.map +1 -1
  24. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts.map +1 -1
  25. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js +26 -2
  26. package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js.map +1 -1
  27. package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts.map +1 -1
  28. package/v3/dist/domains/test-generation/generators/mocha-generator.js +50 -5
  29. package/v3/dist/domains/test-generation/generators/mocha-generator.js.map +1 -1
  30. package/v3/dist/domains/test-generation/generators/node-test-generator.d.ts +54 -0
  31. package/v3/dist/domains/test-generation/generators/node-test-generator.d.ts.map +1 -0
  32. package/v3/dist/domains/test-generation/generators/node-test-generator.js +222 -0
  33. package/v3/dist/domains/test-generation/generators/node-test-generator.js.map +1 -0
  34. package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -1
  35. package/v3/dist/domains/test-generation/generators/pytest-generator.js +47 -5
  36. package/v3/dist/domains/test-generation/generators/pytest-generator.js.map +1 -1
  37. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts +1 -1
  38. package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts.map +1 -1
  39. package/v3/dist/domains/test-generation/interfaces.d.ts +2 -2
  40. package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
  41. package/v3/dist/domains/test-generation/plugin.js.map +1 -1
  42. package/v3/dist/domains/test-generation/services/pattern-matcher.js +32 -6
  43. package/v3/dist/domains/test-generation/services/pattern-matcher.js.map +1 -1
  44. package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
  45. package/v3/dist/domains/test-generation/services/test-generator.js +31 -6
  46. package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
  47. package/v3/dist/mcp/bundle.js +359 -25
  48. package/v3/dist/mcp/tools/test-generation/generate.d.ts +1 -1
  49. package/v3/dist/mcp/tools/test-generation/generate.d.ts.map +1 -1
  50. package/v3/dist/mcp/tools/test-generation/generate.js.map +1 -1
  51. package/v3/package.json +1 -1
@@ -904,7 +904,7 @@
904
904
  },
905
905
  "metadata": {
906
906
  "generatedBy": "Agentic QE Fleet",
907
- "fleetVersion": "3.6.15",
907
+ "fleetVersion": "3.6.16",
908
908
  "manifestVersion": "1.3.0",
909
909
  "lastUpdated": "2026-02-04T00:00:00.000Z",
910
910
  "contributors": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-qe",
3
- "version": "3.6.15",
3
+ "version": "3.6.16",
4
4
  "description": "Agentic Quality Engineering V3 - Domain-Driven Design Architecture with 13 Bounded Contexts, O(log n) coverage analysis, ReasoningBank learning, 59 specialized QE agents, mathematical Coherence verification, deep Claude Flow integration",
5
5
  "main": "./v3/dist/index.js",
6
6
  "types": "./v3/dist/index.d.ts",
package/v3/CHANGELOG.md CHANGED
@@ -5,6 +5,29 @@ All notable changes to Agentic QE will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.6.16] - 2026-02-21
9
+
10
+ ### Added
11
+
12
+ - **Node.js `node:test` runner** — 5th test framework using `node:test` describe/it and `node:assert`. Generate tests with `--framework node-test` for zero-dependency testing on Node.js 18+.
13
+ - **Smart assertions** — Test generators now infer assertion type from function name (`is*` → boolean, `get*` → not undefined, `create*` → truthy) and return type, across all 5 generators including class methods.
14
+ - **Destructured parameter handling** — Functions with `({ a, b })` or `([x, y])` parameters now get proper test values instead of broken variable references. Multiple destructured params get indexed names to avoid collisions.
15
+
16
+ ### Fixed
17
+
18
+ - **`convertToAssert()` double-lambda bug** — `assert.throws(() => action)` never threw because `action` was already a function. Now correctly passes `assert.throws(action)`.
19
+ - **`convertToAssert()` regex ordering** — Specific patterns (`typeof`, `Array.isArray`) now fire before generic `toBe`, preventing garbled output.
20
+ - **Missing `toBeInstanceOf` conversion** — Node:test generator now converts `expect(e).toBeInstanceOf(Error)` to `assert.ok(e instanceof Error)`.
21
+ - **Unconverted `expect()` in action fields** — Boundary/edge-case test actions containing `expect()` are now converted to `assert.*` for node:test output.
22
+ - **`is`/`has`/`can` prefix false positives** — Smart assertions now require uppercase after prefix (e.g., `isValid` matches but `isolate` does not).
23
+ - **Mocha/Pytest missing `#` private method filter** — ES private methods (`#method`) are now excluded from generated tests in all frameworks.
24
+ - **`node-test` missing from runtime paths** — Added to task executor, CLI wizard, shell completions, MCP tools, and plugin interfaces.
25
+
26
+ ### Changed
27
+
28
+ - Smart assertions now apply to class method tests across all generators (previously only standalone functions)
29
+ - Factory test suite expanded to cover all 5 frameworks in integration tests
30
+
8
31
  ## [3.6.15] - 2026-02-20
9
32
 
10
33
  ### Fixed
@@ -25322,11 +25322,27 @@ var BaseTestGenerator = class _BaseTestGenerator {
25322
25322
  const validParams = fn.parameters.map((p74) => this.generateTestValue(p74)).join(", ");
25323
25323
  const fnCall = fn.isAsync ? `await ${fn.name}(${validParams})` : `${fn.name}(${validParams})`;
25324
25324
  const isVoid = fn.returnType === "void" || fn.returnType === "Promise<void>";
25325
+ let assertion = "expect(result).toBeDefined();";
25326
+ if (!isVoid) {
25327
+ if (/^(is|has|can)[A-Z]/.test(fn.name)) {
25328
+ assertion = "expect(typeof result).toBe('boolean');";
25329
+ } else if (/^(get|fetch|find)[A-Z]/.test(fn.name)) {
25330
+ assertion = "expect(result).not.toBeUndefined();";
25331
+ } else if (/^(create|build|make)[A-Z]/.test(fn.name)) {
25332
+ assertion = "expect(result).toBeTruthy();";
25333
+ } else if (fn.returnType) {
25334
+ const rt3 = fn.returnType.toLowerCase().replace(/promise<(.+)>/, "$1");
25335
+ if (rt3.includes("boolean")) assertion = "expect(typeof result).toBe('boolean');";
25336
+ else if (rt3.includes("number")) assertion = "expect(typeof result).toBe('number');";
25337
+ else if (rt3.includes("string")) assertion = "expect(typeof result).toBe('string');";
25338
+ else if (rt3.includes("[]") || rt3.includes("array")) assertion = "expect(Array.isArray(result)).toBe(true);";
25339
+ }
25340
+ }
25325
25341
  testCases.push({
25326
25342
  description: "should handle valid input correctly",
25327
25343
  type: "happy-path",
25328
25344
  action: isVoid ? `${fnCall};` : `const result = ${fnCall};`,
25329
- assertion: isVoid ? `// void function \u2014 no return value to assert` : "expect(result).toBeDefined();"
25345
+ assertion: isVoid ? `// void function \u2014 no return value to assert` : assertion
25330
25346
  });
25331
25347
  const bodyText = fn.body || "";
25332
25348
  const hasExplicitThrow = /\bthrow\b/.test(bodyText) || /\bvalidat/i.test(bodyText);
@@ -25631,6 +25647,22 @@ ${importStatement}
25631
25647
  const methodCall = method.isAsync ? `await instance.${method.name}(${validParams})` : `instance.${method.name}(${validParams})`;
25632
25648
  const asyncPrefix = method.isAsync ? "async " : "";
25633
25649
  const isVoid = method.returnType === "void" || method.returnType === "Promise<void>";
25650
+ let methodAssertion = "expect(result).toBeDefined();";
25651
+ if (!isVoid) {
25652
+ if (/^(is|has|can)[A-Z]/.test(method.name)) {
25653
+ methodAssertion = "expect(typeof result).toBe('boolean');";
25654
+ } else if (/^(get|fetch|find)[A-Z]/.test(method.name)) {
25655
+ methodAssertion = "expect(result).not.toBeUndefined();";
25656
+ } else if (/^(create|build|make)[A-Z]/.test(method.name)) {
25657
+ methodAssertion = "expect(result).toBeTruthy();";
25658
+ } else if (method.returnType) {
25659
+ const mrt = method.returnType.toLowerCase().replace(/promise<(.+)>/, "$1");
25660
+ if (mrt.includes("boolean")) methodAssertion = "expect(typeof result).toBe('boolean');";
25661
+ else if (mrt.includes("number")) methodAssertion = "expect(typeof result).toBe('number');";
25662
+ else if (mrt.includes("string")) methodAssertion = "expect(typeof result).toBe('string');";
25663
+ else if (mrt.includes("[]") || mrt.includes("array")) methodAssertion = "expect(Array.isArray(result)).toBe(true);";
25664
+ }
25665
+ }
25634
25666
  code += ` it('should execute successfully', ${asyncPrefix}() => {
25635
25667
  `;
25636
25668
  if (isVoid) {
@@ -25641,7 +25673,7 @@ ${importStatement}
25641
25673
  } else {
25642
25674
  code += ` const result = ${methodCall};
25643
25675
  `;
25644
- code += ` expect(result).toBeDefined();
25676
+ code += ` ${methodAssertion}
25645
25677
  `;
25646
25678
  }
25647
25679
  code += ` });
@@ -26038,6 +26070,22 @@ ${stubSetup}`;
26038
26070
  const isVoid = fn.returnType === "void" || fn.returnType === "Promise<void>";
26039
26071
  let code = ` describe('${fn.name}', function() {
26040
26072
  `;
26073
+ let chaiAssertion = "expect(result).to.not.be.undefined;";
26074
+ if (!isVoid) {
26075
+ if (/^(is|has|can)[A-Z]/.test(fn.name)) {
26076
+ chaiAssertion = "expect(typeof result).to.equal('boolean');";
26077
+ } else if (/^(get|fetch|find)[A-Z]/.test(fn.name)) {
26078
+ chaiAssertion = "expect(result).to.not.be.undefined;";
26079
+ } else if (/^(create|build|make)[A-Z]/.test(fn.name)) {
26080
+ chaiAssertion = "expect(result).to.be.ok;";
26081
+ } else if (fn.returnType) {
26082
+ const rt3 = fn.returnType.toLowerCase().replace(/promise<(.+)>/, "$1");
26083
+ if (rt3.includes("boolean")) chaiAssertion = "expect(typeof result).to.equal('boolean');";
26084
+ else if (rt3.includes("number")) chaiAssertion = "expect(typeof result).to.equal('number');";
26085
+ else if (rt3.includes("string")) chaiAssertion = "expect(typeof result).to.equal('string');";
26086
+ else if (rt3.includes("[]") || rt3.includes("array")) chaiAssertion = "expect(result).to.be.an('array');";
26087
+ }
26088
+ }
26041
26089
  code += ` it('should handle valid input', ${fn.isAsync ? "async " : ""}function() {
26042
26090
  `;
26043
26091
  if (isVoid) {
@@ -26046,7 +26094,7 @@ ${stubSetup}`;
26046
26094
  } else {
26047
26095
  code += ` const result = ${fnCall};
26048
26096
  `;
26049
- code += ` expect(result).to.not.be.undefined;
26097
+ code += ` ${chaiAssertion}
26050
26098
  `;
26051
26099
  }
26052
26100
  code += ` });
@@ -26112,19 +26160,33 @@ ${stubSetup}`;
26112
26160
  code += ` });
26113
26161
  `;
26114
26162
  for (const method of cls.methods) {
26115
- if (!method.name.startsWith("_")) {
26163
+ if (!method.name.startsWith("_") && !method.name.startsWith("#")) {
26116
26164
  const methodParams = method.parameters.map((p74) => this.generateTestValue(p74)).join(", ");
26117
- const isVoid = method.returnType === "void" || method.returnType === "Promise<void>";
26165
+ const isMethodVoid = method.returnType === "void" || method.returnType === "Promise<void>";
26166
+ let methodAssertion = "expect(result).to.not.be.undefined;";
26167
+ if (!isMethodVoid) {
26168
+ if (/^(is|has|can)[A-Z]/.test(method.name)) {
26169
+ methodAssertion = "expect(typeof result).to.equal('boolean');";
26170
+ } else if (/^(create|build|make)[A-Z]/.test(method.name)) {
26171
+ methodAssertion = "expect(result).to.be.ok;";
26172
+ } else if (method.returnType) {
26173
+ const mrt = method.returnType.toLowerCase().replace(/promise<(.+)>/, "$1");
26174
+ if (mrt.includes("boolean")) methodAssertion = "expect(typeof result).to.equal('boolean');";
26175
+ else if (mrt.includes("number")) methodAssertion = "expect(typeof result).to.equal('number');";
26176
+ else if (mrt.includes("string")) methodAssertion = "expect(typeof result).to.equal('string');";
26177
+ else if (mrt.includes("[]") || mrt.includes("array")) methodAssertion = "expect(result).to.be.an('array');";
26178
+ }
26179
+ }
26118
26180
  code += `
26119
26181
  it('${method.name} should work', ${method.isAsync ? "async " : ""}function() {
26120
26182
  `;
26121
- if (isVoid) {
26183
+ if (isMethodVoid) {
26122
26184
  code += ` ${method.isAsync ? "await " : ""}instance.${method.name}(${methodParams});
26123
26185
  `;
26124
26186
  } else {
26125
26187
  code += ` const result = ${method.isAsync ? "await " : ""}instance.${method.name}(${methodParams});
26126
26188
  `;
26127
- code += ` expect(result).to.not.be.undefined;
26189
+ code += ` ${methodAssertion}
26128
26190
  `;
26129
26191
  }
26130
26192
  code += ` });
@@ -26373,6 +26435,20 @@ class Test${this.pascalCase(moduleName)}:
26373
26435
  `;
26374
26436
  code += ` """Test ${fn.name} with valid input"""
26375
26437
  `;
26438
+ let pyAssertion = "assert result is not None";
26439
+ if (!isVoid) {
26440
+ if (/^(is|has|can)[A-Z]/.test(fn.name)) {
26441
+ pyAssertion = "assert isinstance(result, bool)";
26442
+ } else if (/^(create|build|make)[A-Z]/.test(fn.name)) {
26443
+ pyAssertion = "assert result";
26444
+ } else if (fn.returnType) {
26445
+ const rt3 = fn.returnType.toLowerCase().replace(/promise<(.+)>/, "$1");
26446
+ if (rt3.includes("boolean") || rt3.includes("bool")) pyAssertion = "assert isinstance(result, bool)";
26447
+ else if (rt3.includes("number") || rt3.includes("int") || rt3.includes("float")) pyAssertion = "assert isinstance(result, (int, float))";
26448
+ else if (rt3.includes("string") || rt3.includes("str")) pyAssertion = "assert isinstance(result, str)";
26449
+ else if (rt3.includes("[]") || rt3.includes("array") || rt3.includes("list")) pyAssertion = "assert isinstance(result, list)";
26450
+ }
26451
+ }
26376
26452
  if (isVoid) {
26377
26453
  code += ` ${fn.name}(${validParams}) # void function
26378
26454
 
@@ -26380,7 +26456,7 @@ class Test${this.pascalCase(moduleName)}:
26380
26456
  } else {
26381
26457
  code += ` result = ${fn.name}(${validParams})
26382
26458
  `;
26383
- code += ` assert result is not None
26459
+ code += ` ${pyAssertion}
26384
26460
 
26385
26461
  `;
26386
26462
  }
@@ -26424,19 +26500,33 @@ class Test${cls.name}:
26424
26500
 
26425
26501
  `;
26426
26502
  for (const method of cls.methods) {
26427
- if (!method.name.startsWith("_")) {
26503
+ if (!method.name.startsWith("_") && !method.name.startsWith("#")) {
26428
26504
  const methodParams = method.parameters.map((p74) => this.generatePythonTestValue(p74)).join(", ");
26429
- const isVoid = method.returnType === "void" || method.returnType === "Promise<void>";
26505
+ const isMethodVoid = method.returnType === "void" || method.returnType === "Promise<void>";
26506
+ let mAssertion = "assert result is not None";
26507
+ if (!isMethodVoid) {
26508
+ if (/^(is|has|can)[A-Z]/.test(method.name)) {
26509
+ mAssertion = "assert isinstance(result, bool)";
26510
+ } else if (/^(create|build|make)[A-Z]/.test(method.name)) {
26511
+ mAssertion = "assert result";
26512
+ } else if (method.returnType) {
26513
+ const mrt = method.returnType.toLowerCase().replace(/promise<(.+)>/, "$1");
26514
+ if (mrt.includes("boolean") || mrt.includes("bool")) mAssertion = "assert isinstance(result, bool)";
26515
+ else if (mrt.includes("number") || mrt.includes("int") || mrt.includes("float")) mAssertion = "assert isinstance(result, (int, float))";
26516
+ else if (mrt.includes("string") || mrt.includes("str")) mAssertion = "assert isinstance(result, str)";
26517
+ else if (mrt.includes("[]") || mrt.includes("array") || mrt.includes("list")) mAssertion = "assert isinstance(result, list)";
26518
+ }
26519
+ }
26430
26520
  code += ` def test_${method.name}(self, instance):
26431
26521
  `;
26432
- if (isVoid) {
26522
+ if (isMethodVoid) {
26433
26523
  code += ` instance.${method.name}(${methodParams})
26434
26524
 
26435
26525
  `;
26436
26526
  } else {
26437
26527
  code += ` result = instance.${method.name}(${methodParams})
26438
26528
  `;
26439
- code += ` assert result is not None
26529
+ code += ` ${mAssertion}
26440
26530
 
26441
26531
  `;
26442
26532
  }
@@ -26624,12 +26714,214 @@ class Test${this.pascalCase(moduleName)}Coverage:
26624
26714
  }
26625
26715
  };
26626
26716
 
26717
+ // src/domains/test-generation/generators/node-test-generator.ts
26718
+ var NodeTestGenerator = class extends BaseTestGenerator {
26719
+ framework = "node-test";
26720
+ /**
26721
+ * Generate complete test file from analysis
26722
+ */
26723
+ generateTests(context2) {
26724
+ const { moduleName, importPath, testType, patterns, analysis } = context2;
26725
+ if (!analysis || analysis.functions.length === 0 && analysis.classes.length === 0) {
26726
+ return this.generateStubTests(context2);
26727
+ }
26728
+ const patternComment = this.generatePatternComment(patterns);
26729
+ const exportedFunctions = analysis.functions.filter((fn) => fn.isExported);
26730
+ const exportedClasses = analysis.classes.filter((cls) => cls.isExported);
26731
+ const exports = this.extractExports(exportedFunctions, exportedClasses);
26732
+ const importStatement = this.generateImportStatement(exports, importPath, moduleName);
26733
+ let testCode = `${patternComment}import { describe, it, beforeEach } from 'node:test';
26734
+ import assert from 'node:assert';
26735
+ ${importStatement}
26736
+
26737
+ `;
26738
+ for (const fn of exportedFunctions) {
26739
+ testCode += this.generateFunctionTests(fn, testType);
26740
+ }
26741
+ for (const cls of exportedClasses) {
26742
+ testCode += this.generateClassTests(cls, testType);
26743
+ }
26744
+ return testCode;
26745
+ }
26746
+ /**
26747
+ * Generate tests for a standalone function
26748
+ */
26749
+ generateFunctionTests(fn, _testType) {
26750
+ const testCases = this.generateTestCasesForFunction(fn);
26751
+ let code = `describe('${fn.name}', () => {
26752
+ `;
26753
+ for (const testCase of testCases) {
26754
+ if (testCase.setup) {
26755
+ code += ` ${testCase.setup}
26756
+
26757
+ `;
26758
+ }
26759
+ const asyncPrefix = fn.isAsync ? "async " : "";
26760
+ code += ` it('${testCase.description}', ${asyncPrefix}() => {
26761
+ `;
26762
+ code += ` ${this.convertToAssert(testCase.action)}
26763
+ `;
26764
+ code += ` ${this.convertToAssert(testCase.assertion)}
26765
+ `;
26766
+ code += ` });
26767
+
26768
+ `;
26769
+ }
26770
+ code += `});
26771
+
26772
+ `;
26773
+ return code;
26774
+ }
26775
+ /**
26776
+ * Generate tests for a class
26777
+ */
26778
+ generateClassTests(cls, testType) {
26779
+ let code = `describe('${cls.name}', () => {
26780
+ `;
26781
+ code += ` let instance;
26782
+
26783
+ `;
26784
+ const constructorArgs = cls.constructorParams?.map((p74) => this.generateTestValue(p74)).join(", ") || "";
26785
+ code += ` beforeEach(() => {
26786
+ `;
26787
+ code += ` instance = new ${cls.name}(${constructorArgs});
26788
+ `;
26789
+ code += ` });
26790
+
26791
+ `;
26792
+ code += ` it('should instantiate correctly', () => {
26793
+ `;
26794
+ code += ` assert.ok(instance instanceof ${cls.name});
26795
+ `;
26796
+ code += ` });
26797
+
26798
+ `;
26799
+ for (const method of cls.methods) {
26800
+ if (!method.name.startsWith("_") && !method.name.startsWith("#")) {
26801
+ code += this.generateMethodTest(method);
26802
+ }
26803
+ }
26804
+ code += `});
26805
+
26806
+ `;
26807
+ return code;
26808
+ }
26809
+ /**
26810
+ * Generate test for a class method
26811
+ */
26812
+ generateMethodTest(method) {
26813
+ const validParams = method.parameters.map((p74) => this.generateTestValue(p74)).join(", ");
26814
+ const isVoid = method.returnType === "void" || method.returnType === "Promise<void>";
26815
+ const asyncPrefix = method.isAsync ? "async " : "";
26816
+ const methodCall = method.isAsync ? `await instance.${method.name}(${validParams})` : `instance.${method.name}(${validParams})`;
26817
+ let assertLine = "assert.ok(result !== undefined);";
26818
+ if (!isVoid) {
26819
+ const mLower = method.name.toLowerCase();
26820
+ if (/^(is|has|can)[A-Z]/.test(method.name)) {
26821
+ assertLine = "assert.strictEqual(typeof result, 'boolean');";
26822
+ } else if (/^(get|fetch|find)[A-Z]/.test(method.name)) {
26823
+ assertLine = "assert.ok(result !== undefined);";
26824
+ } else if (/^(create|build|make)[A-Z]/.test(method.name)) {
26825
+ assertLine = "assert.ok(result);";
26826
+ } else if (method.returnType) {
26827
+ const rt3 = method.returnType.toLowerCase().replace(/promise<(.+)>/, "$1");
26828
+ if (rt3.includes("boolean")) assertLine = "assert.strictEqual(typeof result, 'boolean');";
26829
+ else if (rt3.includes("number")) assertLine = "assert.strictEqual(typeof result, 'number');";
26830
+ else if (rt3.includes("string")) assertLine = "assert.strictEqual(typeof result, 'string');";
26831
+ else if (rt3.includes("[]") || rt3.includes("array")) assertLine = "assert.ok(Array.isArray(result));";
26832
+ }
26833
+ }
26834
+ let code = ` it('${method.name} should execute successfully', ${asyncPrefix}() => {
26835
+ `;
26836
+ if (isVoid) {
26837
+ code += ` ${methodCall};
26838
+ `;
26839
+ } else {
26840
+ code += ` const result = ${methodCall};
26841
+ `;
26842
+ code += ` ${assertLine}
26843
+ `;
26844
+ }
26845
+ code += ` });
26846
+
26847
+ `;
26848
+ return code;
26849
+ }
26850
+ /**
26851
+ * Generate stub tests when no AST analysis is available
26852
+ */
26853
+ generateStubTests(context2) {
26854
+ const { moduleName, importPath, testType, patterns } = context2;
26855
+ const patternComment = this.generatePatternComment(patterns);
26856
+ return `${patternComment}import { describe, it } from 'node:test';
26857
+ import assert from 'node:assert';
26858
+ import { ${moduleName} } from '${importPath}';
26859
+
26860
+ describe('${moduleName}', () => {
26861
+ describe('${testType} tests', () => {
26862
+ it('should be defined', () => {
26863
+ assert.ok(${moduleName} !== undefined);
26864
+ });
26865
+
26866
+ it('should handle basic operations', () => {
26867
+ const moduleType = typeof ${moduleName};
26868
+ assert.ok(['function', 'object'].includes(moduleType));
26869
+ });
26870
+
26871
+ it('should handle error conditions', () => {
26872
+ assert.doesNotThrow(() => {
26873
+ const instance = typeof ${moduleName} === 'function'
26874
+ ? new ${moduleName}()
26875
+ : ${moduleName};
26876
+ return instance;
26877
+ });
26878
+ });
26879
+ });
26880
+ });
26881
+ `;
26882
+ }
26883
+ /**
26884
+ * Generate coverage-focused tests for specific lines
26885
+ */
26886
+ generateCoverageTests(moduleName, importPath, lines) {
26887
+ const funcName = this.camelCase(moduleName);
26888
+ const lineRange = this.formatLineRange(lines);
26889
+ return `// Coverage test for ${lineRange} in ${moduleName}
26890
+ import { describe, it } from 'node:test';
26891
+ import assert from 'node:assert';
26892
+ import { ${funcName} } from '${importPath}';
26893
+
26894
+ describe('${moduleName} coverage', () => {
26895
+ it('should exercise code path covering ${lineRange}', () => {
26896
+ const testInput = undefined; // Replace with appropriate input
26897
+ const result = ${funcName}(testInput);
26898
+ assert.ok(result !== undefined || result === undefined);
26899
+ });
26900
+
26901
+ it('should handle edge case for ${lineRange}', () => {
26902
+ assert.doesNotThrow(() => ${funcName}(null));
26903
+ });
26904
+ });
26905
+ `;
26906
+ }
26907
+ // ============================================================================
26908
+ // Helpers
26909
+ // ============================================================================
26910
+ /**
26911
+ * Convert expect() style assertions to node:assert
26912
+ */
26913
+ convertToAssert(assertion) {
26914
+ return assertion.replace(/expect\(typeof ([^)]+)\)\.toBe\('([^']+)'\);?/g, "assert.strictEqual(typeof $1, '$2');").replace(/expect\(Array\.isArray\(([^)]+)\)\)\.toBe\(true\);?/g, "assert.ok(Array.isArray($1));").replace(/expect\(([^)]+)\)\.toThrow\(\);?/g, "assert.throws($1);").replace(/expect\(([^)]+)\)\.not\.toThrow\(\);?/g, "assert.doesNotThrow($1);").replace(/expect\(([^)]+)\)\.toBeInstanceOf\(([^)]+)\);?/g, "assert.ok($1 instanceof $2);").replace(/expect\(([^)]+)\)\.toBeDefined\(\);?/g, "assert.ok($1 !== undefined);").replace(/expect\(([^)]+)\)\.not\.toBeUndefined\(\);?/g, "assert.ok($1 !== undefined);").replace(/expect\(([^)]+)\)\.toBeUndefined\(\);?/g, "assert.strictEqual($1, undefined);").replace(/expect\(([^)]+)\)\.toBeTruthy\(\);?/g, "assert.ok($1);").replace(/expect\(([^)]+)\)\.toBeFalsy\(\);?/g, "assert.ok(!$1);").replace(/expect\(([^)]+)\)\.toBe\(([^)]+)\);?/g, "assert.strictEqual($1, $2);").replace(/expect\(([^)]+)\)\.toEqual\(([^)]+)\);?/g, "assert.deepStrictEqual($1, $2);");
26915
+ }
26916
+ };
26917
+
26627
26918
  // src/domains/test-generation/factories/test-generator-factory.ts
26628
26919
  var SUPPORTED_FRAMEWORKS = [
26629
26920
  "jest",
26630
26921
  "vitest",
26631
26922
  "mocha",
26632
- "pytest"
26923
+ "pytest",
26924
+ "node-test"
26633
26925
  ];
26634
26926
  var DEFAULT_FRAMEWORK = "vitest";
26635
26927
  var TestGeneratorFactory = class {
@@ -26691,6 +26983,8 @@ var TestGeneratorFactory = class {
26691
26983
  return new MochaGenerator();
26692
26984
  case "pytest":
26693
26985
  return new PytestGenerator();
26986
+ case "node-test":
26987
+ return new NodeTestGenerator();
26694
26988
  default:
26695
26989
  throw new Error(`Unsupported test framework: ${framework}`);
26696
26990
  }
@@ -28038,12 +28332,32 @@ ${sourceCode}
28038
28332
  };
28039
28333
  }
28040
28334
  extractParameters(params, sourceFile) {
28041
- return params.map((param) => ({
28042
- name: param.name.getText(sourceFile),
28043
- type: param.type?.getText(sourceFile),
28044
- optional: param.questionToken !== void 0,
28045
- defaultValue: param.initializer?.getText(sourceFile)
28046
- }));
28335
+ let objectDestructureCount = 0;
28336
+ let arrayDestructureCount = 0;
28337
+ return params.map((param) => {
28338
+ let name = param.name.getText(sourceFile);
28339
+ let type = param.type?.getText(sourceFile);
28340
+ if (ts.isObjectBindingPattern(param.name)) {
28341
+ objectDestructureCount++;
28342
+ name = objectDestructureCount > 1 ? `options${objectDestructureCount}` : "options";
28343
+ if (!type) {
28344
+ const props = param.name.elements.map((el) => `${el.name.getText(sourceFile)}: unknown`).join(", ");
28345
+ type = `{ ${props} }`;
28346
+ }
28347
+ } else if (ts.isArrayBindingPattern(param.name)) {
28348
+ arrayDestructureCount++;
28349
+ name = arrayDestructureCount > 1 ? `items${arrayDestructureCount}` : "items";
28350
+ if (!type) {
28351
+ type = "unknown[]";
28352
+ }
28353
+ }
28354
+ return {
28355
+ name,
28356
+ type,
28357
+ optional: param.questionToken !== void 0,
28358
+ defaultValue: param.initializer?.getText(sourceFile)
28359
+ };
28360
+ });
28047
28361
  }
28048
28362
  calculateComplexity(node) {
28049
28363
  let complexity = 1;
@@ -29491,12 +29805,32 @@ var TypeScriptASTParser = class {
29491
29805
  * Extract parameter information
29492
29806
  */
29493
29807
  extractParameters(params, sourceFile) {
29494
- return params.map((param) => ({
29495
- name: param.name.getText(sourceFile),
29496
- type: param.type?.getText(sourceFile),
29497
- optional: param.questionToken !== void 0,
29498
- defaultValue: param.initializer?.getText(sourceFile)
29499
- }));
29808
+ let objectDestructureCount = 0;
29809
+ let arrayDestructureCount = 0;
29810
+ return params.map((param) => {
29811
+ let name = param.name.getText(sourceFile);
29812
+ let type = param.type?.getText(sourceFile);
29813
+ if (ts2.isObjectBindingPattern(param.name)) {
29814
+ objectDestructureCount++;
29815
+ name = objectDestructureCount > 1 ? `options${objectDestructureCount}` : "options";
29816
+ if (!type) {
29817
+ const props = param.name.elements.map((el) => `${el.name.getText(sourceFile)}: unknown`).join(", ");
29818
+ type = `{ ${props} }`;
29819
+ }
29820
+ } else if (ts2.isArrayBindingPattern(param.name)) {
29821
+ arrayDestructureCount++;
29822
+ name = arrayDestructureCount > 1 ? `items${arrayDestructureCount}` : "items";
29823
+ if (!type) {
29824
+ type = "unknown[]";
29825
+ }
29826
+ }
29827
+ return {
29828
+ name,
29829
+ type,
29830
+ optional: param.questionToken !== void 0,
29831
+ defaultValue: param.initializer?.getText(sourceFile)
29832
+ };
29833
+ });
29500
29834
  }
29501
29835
  /**
29502
29836
  * Calculate cyclomatic complexity of a node
@@ -115538,7 +115872,7 @@ var ALL_DOMAINS2 = [
115538
115872
  "enterprise-integration"
115539
115873
  ];
115540
115874
  function getAQEVersion() {
115541
- return true ? "3.6.15" : "3.0.0";
115875
+ return true ? "3.6.16" : "3.0.0";
115542
115876
  }
115543
115877
  function createDefaultConfig(projectName, projectRoot) {
115544
115878
  return {
@@ -125730,7 +126064,7 @@ var TASK_TYPES = [
125730
126064
  ];
125731
126065
  var PRIORITIES = ["p0", "p1", "p2", "p3"];
125732
126066
  var STATUSES = ["pending", "running", "completed", "failed", "cancelled"];
125733
- var FRAMEWORKS = ["jest", "vitest", "pytest", "junit", "playwright", "cypress", "go-test"];
126067
+ var FRAMEWORKS = ["jest", "vitest", "pytest", "junit", "playwright", "cypress", "go-test", "node-test"];
125734
126068
  var TEST_TYPES = ["unit", "integration", "e2e"];
125735
126069
  var MEMORY_BACKENDS = ["sqlite", "agentdb", "hybrid"];
125736
126070
  function generateBashCompletion() {
@@ -140767,7 +141101,7 @@ async function cleanupAndExit(code = 0) {
140767
141101
  process.exit(code);
140768
141102
  }
140769
141103
  var program = new Command18();
140770
- var VERSION = true ? "3.6.15" : "0.0.0-dev";
141104
+ var VERSION = true ? "3.6.16" : "0.0.0-dev";
140771
141105
  program.name("aqe").description("Agentic QE - Domain-Driven Quality Engineering").version(VERSION);
140772
141106
  var registry = createCommandRegistry(context, cleanupAndExit, ensureInitialized);
140773
141107
  registry.registerAll(program);
@@ -151,7 +151,7 @@ export declare const STATUSES: readonly ["pending", "running", "completed", "fai
151
151
  /**
152
152
  * Test frameworks
153
153
  */
154
- export declare const FRAMEWORKS: readonly ["jest", "vitest", "pytest", "junit", "playwright", "cypress", "go-test"];
154
+ export declare const FRAMEWORKS: readonly ["jest", "vitest", "pytest", "junit", "playwright", "cypress", "go-test", "node-test"];
155
155
  /**
156
156
  * Test types
157
157
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/completions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;GAEG;AACH,eAAO,MAAM,OAAO,kRAaV,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,SAAS,wiCAkDZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,iwBAyCf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,8xDAA2C,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFX,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,gPAab,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,mCAAoC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,QAAQ,qEAAsE,CAAC;AAE5F;;GAEG;AACH,eAAO,MAAM,UAAU,oFAAqF,CAAC;AAE7G;;GAEG;AACH,eAAO,MAAM,UAAU,yCAA0C,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,eAAe,0CAA2C,CAAC;AAMxE;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAkY/C;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA0U9C;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA8K/C;AAMD;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAoZrD;AAMD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,SAAS,CA6CvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAyCvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAaxF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/completions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH;;GAEG;AACH,eAAO,MAAM,OAAO,kRAaV,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,SAAS,wiCAkDZ,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,iwBAyCf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,8xDAA2C,CAAC;AAEnE;;GAEG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFX,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,gPAab,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU,mCAAoC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,QAAQ,qEAAsE,CAAC;AAE5F;;GAEG;AACH,eAAO,MAAM,UAAU,iGAAkG,CAAC;AAE1H;;GAEG;AACH,eAAO,MAAM,UAAU,yCAA0C,CAAC;AAElE;;GAEG;AACH,eAAO,MAAM,eAAe,0CAA2C,CAAC;AAMxE;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAkY/C;AAMD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CA0U9C;AAMD;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CA8K/C;AAMD;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAoZrD;AAMD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IACzD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,SAAS,CA6CvC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAyCvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,YAAY,GAAG,MAAM,CAaxF"}
@@ -250,7 +250,7 @@ export const STATUSES = ['pending', 'running', 'completed', 'failed', 'cancelled
250
250
  /**
251
251
  * Test frameworks
252
252
  */
253
- export const FRAMEWORKS = ['jest', 'vitest', 'pytest', 'junit', 'playwright', 'cypress', 'go-test'];
253
+ export const FRAMEWORKS = ['jest', 'vitest', 'pytest', 'junit', 'playwright', 'cypress', 'go-test', 'node-test'];
254
254
  /**
255
255
  * Test types
256
256
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/completions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/completions/index.ts"],"names":[],"mappings":"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"}