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.
- package/.claude/skills/skills-manifest.json +1 -1
- package/package.json +1 -1
- package/v3/CHANGELOG.md +23 -0
- package/v3/dist/cli/bundle.js +362 -28
- package/v3/dist/cli/completions/index.d.ts +1 -1
- package/v3/dist/cli/completions/index.d.ts.map +1 -1
- package/v3/dist/cli/completions/index.js +1 -1
- package/v3/dist/cli/completions/index.js.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.d.ts +1 -1
- package/v3/dist/cli/wizards/test-wizard.d.ts.map +1 -1
- package/v3/dist/cli/wizards/test-wizard.js +8 -1
- package/v3/dist/cli/wizards/test-wizard.js.map +1 -1
- package/v3/dist/coordination/task-executor.js.map +1 -1
- package/v3/dist/domains/test-generation/factories/test-generator-factory.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/factories/test-generator-factory.js +4 -1
- package/v3/dist/domains/test-generation/factories/test-generator-factory.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/base-test-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/base-test-generator.js +26 -1
- package/v3/dist/domains/test-generation/generators/base-test-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/index.d.ts +1 -0
- package/v3/dist/domains/test-generation/generators/index.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/index.js +1 -0
- package/v3/dist/domains/test-generation/generators/index.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js +26 -2
- package/v3/dist/domains/test-generation/generators/jest-vitest-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/mocha-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/mocha-generator.js +50 -5
- package/v3/dist/domains/test-generation/generators/mocha-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/generators/node-test-generator.d.ts +54 -0
- package/v3/dist/domains/test-generation/generators/node-test-generator.d.ts.map +1 -0
- package/v3/dist/domains/test-generation/generators/node-test-generator.js +222 -0
- package/v3/dist/domains/test-generation/generators/node-test-generator.js.map +1 -0
- package/v3/dist/domains/test-generation/generators/pytest-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/generators/pytest-generator.js +47 -5
- package/v3/dist/domains/test-generation/generators/pytest-generator.js.map +1 -1
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts +1 -1
- package/v3/dist/domains/test-generation/interfaces/test-generator.interface.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/interfaces.d.ts +2 -2
- package/v3/dist/domains/test-generation/interfaces.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/plugin.js.map +1 -1
- package/v3/dist/domains/test-generation/services/pattern-matcher.js +32 -6
- package/v3/dist/domains/test-generation/services/pattern-matcher.js.map +1 -1
- package/v3/dist/domains/test-generation/services/test-generator.d.ts.map +1 -1
- package/v3/dist/domains/test-generation/services/test-generator.js +31 -6
- package/v3/dist/domains/test-generation/services/test-generator.js.map +1 -1
- package/v3/dist/mcp/bundle.js +359 -25
- package/v3/dist/mcp/tools/test-generation/generate.d.ts +1 -1
- package/v3/dist/mcp/tools/test-generation/generate.d.ts.map +1 -1
- package/v3/dist/mcp/tools/test-generation/generate.js.map +1 -1
- package/v3/package.json +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentic-qe",
|
|
3
|
-
"version": "3.6.
|
|
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
|
package/v3/dist/cli/bundle.js
CHANGED
|
@@ -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` :
|
|
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 += `
|
|
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 += `
|
|
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
|
|
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 (
|
|
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 += `
|
|
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 += `
|
|
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
|
|
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 (
|
|
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 += `
|
|
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
|
-
|
|
28042
|
-
|
|
28043
|
-
|
|
28044
|
-
|
|
28045
|
-
|
|
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
|
-
|
|
29495
|
-
|
|
29496
|
-
|
|
29497
|
-
|
|
29498
|
-
|
|
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.
|
|
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.
|
|
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,
|
|
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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"}
|