lacuna-cli 0.1.1
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/README.md +451 -0
- package/bin/run.js +5 -0
- package/dist/agent/context.d.ts +25 -0
- package/dist/agent/context.d.ts.map +1 -0
- package/dist/agent/context.js +366 -0
- package/dist/agent/context.js.map +1 -0
- package/dist/agent/fix-loop.d.ts +20 -0
- package/dist/agent/fix-loop.d.ts.map +1 -0
- package/dist/agent/fix-loop.js +466 -0
- package/dist/agent/fix-loop.js.map +1 -0
- package/dist/agent/generator.d.ts +35 -0
- package/dist/agent/generator.d.ts.map +1 -0
- package/dist/agent/generator.js +220 -0
- package/dist/agent/generator.js.map +1 -0
- package/dist/agent/loop.d.ts +23 -0
- package/dist/agent/loop.d.ts.map +1 -0
- package/dist/agent/loop.js +394 -0
- package/dist/agent/loop.js.map +1 -0
- package/dist/agent/project-memory.d.ts +10 -0
- package/dist/agent/project-memory.d.ts.map +1 -0
- package/dist/agent/project-memory.js +57 -0
- package/dist/agent/project-memory.js.map +1 -0
- package/dist/agent/prompts.d.ts +44 -0
- package/dist/agent/prompts.d.ts.map +1 -0
- package/dist/agent/prompts.js +377 -0
- package/dist/agent/prompts.js.map +1 -0
- package/dist/ci/comment.d.ts +2 -0
- package/dist/ci/comment.d.ts.map +1 -0
- package/dist/ci/comment.js +97 -0
- package/dist/ci/comment.js.map +1 -0
- package/dist/ci/parse-outputs.d.ts +2 -0
- package/dist/ci/parse-outputs.d.ts.map +1 -0
- package/dist/ci/parse-outputs.js +30 -0
- package/dist/ci/parse-outputs.js.map +1 -0
- package/dist/commands/analyze.d.ts +13 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +151 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/fix.d.ts +15 -0
- package/dist/commands/fix.d.ts.map +1 -0
- package/dist/commands/fix.js +106 -0
- package/dist/commands/fix.js.map +1 -0
- package/dist/commands/generate.d.ts +18 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +129 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +7 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +131 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/run.d.ts +10 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +45 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/lib/config.d.ts +58 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +68 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/coverage/gaps.d.ts +12 -0
- package/dist/lib/coverage/gaps.d.ts.map +1 -0
- package/dist/lib/coverage/gaps.js +186 -0
- package/dist/lib/coverage/gaps.js.map +1 -0
- package/dist/lib/coverage/index.d.ts +7 -0
- package/dist/lib/coverage/index.d.ts.map +1 -0
- package/dist/lib/coverage/index.js +24 -0
- package/dist/lib/coverage/index.js.map +1 -0
- package/dist/lib/coverage/json.d.ts +3 -0
- package/dist/lib/coverage/json.d.ts.map +1 -0
- package/dist/lib/coverage/json.js +24 -0
- package/dist/lib/coverage/json.js.map +1 -0
- package/dist/lib/coverage/lcov.d.ts +3 -0
- package/dist/lib/coverage/lcov.d.ts.map +1 -0
- package/dist/lib/coverage/lcov.js +58 -0
- package/dist/lib/coverage/lcov.js.map +1 -0
- package/dist/lib/coverage/types.d.ts +27 -0
- package/dist/lib/coverage/types.d.ts.map +1 -0
- package/dist/lib/coverage/types.js +2 -0
- package/dist/lib/coverage/types.js.map +1 -0
- package/dist/lib/coverage-spinner.d.ts +6 -0
- package/dist/lib/coverage-spinner.d.ts.map +1 -0
- package/dist/lib/coverage-spinner.js +101 -0
- package/dist/lib/coverage-spinner.js.map +1 -0
- package/dist/lib/detector.d.ts +13 -0
- package/dist/lib/detector.d.ts.map +1 -0
- package/dist/lib/detector.js +106 -0
- package/dist/lib/detector.js.map +1 -0
- package/dist/lib/extract-error.d.ts +2 -0
- package/dist/lib/extract-error.d.ts.map +1 -0
- package/dist/lib/extract-error.js +116 -0
- package/dist/lib/extract-error.js.map +1 -0
- package/dist/lib/providers/anthropic.d.ts +8 -0
- package/dist/lib/providers/anthropic.d.ts.map +1 -0
- package/dist/lib/providers/anthropic.js +38 -0
- package/dist/lib/providers/anthropic.js.map +1 -0
- package/dist/lib/providers/index.d.ts +6 -0
- package/dist/lib/providers/index.d.ts.map +1 -0
- package/dist/lib/providers/index.js +27 -0
- package/dist/lib/providers/index.js.map +1 -0
- package/dist/lib/providers/openai-compatible.d.ts +11 -0
- package/dist/lib/providers/openai-compatible.d.ts.map +1 -0
- package/dist/lib/providers/openai-compatible.js +93 -0
- package/dist/lib/providers/openai-compatible.js.map +1 -0
- package/dist/lib/providers/types.d.ts +17 -0
- package/dist/lib/providers/types.d.ts.map +1 -0
- package/dist/lib/providers/types.js +97 -0
- package/dist/lib/providers/types.js.map +1 -0
- package/dist/lib/report-upload.d.ts +3 -0
- package/dist/lib/report-upload.d.ts.map +1 -0
- package/dist/lib/report-upload.js +15 -0
- package/dist/lib/report-upload.js.map +1 -0
- package/dist/lib/reporter.d.ts +51 -0
- package/dist/lib/reporter.d.ts.map +1 -0
- package/dist/lib/reporter.js +172 -0
- package/dist/lib/reporter.js.map +1 -0
- package/dist/lib/runner.d.ts +9 -0
- package/dist/lib/runner.d.ts.map +1 -0
- package/dist/lib/runner.js +50 -0
- package/dist/lib/runner.js.map +1 -0
- package/dist/lib/skeleton.d.ts +8 -0
- package/dist/lib/skeleton.d.ts.map +1 -0
- package/dist/lib/skeleton.js +122 -0
- package/dist/lib/skeleton.js.map +1 -0
- package/dist/lib/streaming-viewer.d.ts +14 -0
- package/dist/lib/streaming-viewer.d.ts.map +1 -0
- package/dist/lib/streaming-viewer.js +80 -0
- package/dist/lib/streaming-viewer.js.map +1 -0
- package/dist/lib/tips.d.ts +16 -0
- package/dist/lib/tips.d.ts.map +1 -0
- package/dist/lib/tips.js +76 -0
- package/dist/lib/tips.js.map +1 -0
- package/dist/lib/typecheck.d.ts +3 -0
- package/dist/lib/typecheck.d.ts.map +1 -0
- package/dist/lib/typecheck.js +28 -0
- package/dist/lib/typecheck.js.map +1 -0
- package/dist/lib/validate.d.ts +7 -0
- package/dist/lib/validate.d.ts.map +1 -0
- package/dist/lib/validate.js +82 -0
- package/dist/lib/validate.js.map +1 -0
- package/dist/lib/worker-display.d.ts +45 -0
- package/dist/lib/worker-display.d.ts.map +1 -0
- package/dist/lib/worker-display.js +168 -0
- package/dist/lib/worker-display.js.map +1 -0
- package/oclif.manifest.json +295 -0
- package/package.json +62 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/agent/loop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DetectedEnvironment } from '../lib/detector.js';
|
|
2
|
+
import type { LacunaConfig } from '../lib/config.js';
|
|
3
|
+
export declare class ProjectMemory {
|
|
4
|
+
private samples;
|
|
5
|
+
private observations;
|
|
6
|
+
initialize(cwd: string, _env: DetectedEnvironment, config: LacunaConfig): Promise<void>;
|
|
7
|
+
recordSuccess(testFile: string, testCode: string): void;
|
|
8
|
+
toPromptSection(): string | null;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=project-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-memory.d.ts","sourceRoot":"","sources":["../../src/agent/project-memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAMpD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,YAAY,CAAe;IAE7B,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7F,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAevD,eAAe,IAAI,MAAM,GAAG,IAAI;CAsBjC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import { relative } from 'path';
|
|
3
|
+
import { findTestFiles } from '../lib/coverage/gaps.js';
|
|
4
|
+
const MAX_SAMPLE_FILES = 5;
|
|
5
|
+
const SAMPLE_LINES = 35;
|
|
6
|
+
export class ProjectMemory {
|
|
7
|
+
samples = [];
|
|
8
|
+
observations = [];
|
|
9
|
+
async initialize(cwd, _env, config) {
|
|
10
|
+
const allTestFiles = await findTestFiles(cwd, {}, config).catch(() => []);
|
|
11
|
+
const picked = allTestFiles.slice(0, MAX_SAMPLE_FILES);
|
|
12
|
+
await Promise.all(picked.map(async (absPath) => {
|
|
13
|
+
try {
|
|
14
|
+
const code = await readFile(absPath, 'utf-8');
|
|
15
|
+
const snippet = code.split('\n').slice(0, SAMPLE_LINES).join('\n');
|
|
16
|
+
const rel = relative(cwd, absPath);
|
|
17
|
+
this.samples.push({ file: rel, snippet });
|
|
18
|
+
}
|
|
19
|
+
catch { /* skip unreadable */ }
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
recordSuccess(testFile, testCode) {
|
|
23
|
+
const imports = testCode.match(/^import .+$/gm) ?? [];
|
|
24
|
+
if (imports.length === 0)
|
|
25
|
+
return;
|
|
26
|
+
const sources = imports
|
|
27
|
+
.map((line) => {
|
|
28
|
+
const m = line.match(/from ['"]([^'"]+)['"]/);
|
|
29
|
+
return m ? m[1] : null;
|
|
30
|
+
})
|
|
31
|
+
.filter(Boolean)
|
|
32
|
+
.join(', ');
|
|
33
|
+
if (sources) {
|
|
34
|
+
this.observations.push(`${testFile} → imports: ${sources}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
toPromptSection() {
|
|
38
|
+
const parts = [];
|
|
39
|
+
if (this.samples.length > 0) {
|
|
40
|
+
parts.push('PROJECT TEST EXAMPLES (study these — follow the same import style, utilities, and mock usage):');
|
|
41
|
+
for (const { file, snippet } of this.samples) {
|
|
42
|
+
parts.push(`\n// ${file}`);
|
|
43
|
+
parts.push('```');
|
|
44
|
+
parts.push(snippet);
|
|
45
|
+
parts.push('```');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (this.observations.length > 0) {
|
|
49
|
+
parts.push('\nPATTERNS FROM THIS SESSION (already-written tests in this run — stay consistent):');
|
|
50
|
+
for (const obs of this.observations) {
|
|
51
|
+
parts.push(` • ${obs}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return parts.length > 0 ? parts.join('\n') : null;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=project-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-memory.js","sourceRoot":"","sources":["../../src/agent/project-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { DetectedEnvironment } from '../lib/detector.js';
|
|
2
|
+
export declare function buildSystemPrompt(env: DetectedEnvironment): string;
|
|
3
|
+
export declare function buildGeneratePrompt(args: {
|
|
4
|
+
sourceFile: string;
|
|
5
|
+
sourceCode: string;
|
|
6
|
+
existingTestCode: string | null;
|
|
7
|
+
uncoveredFunctions: string[];
|
|
8
|
+
uncoveredLines: number[];
|
|
9
|
+
env: DetectedEnvironment;
|
|
10
|
+
sourceImportPath?: string | null;
|
|
11
|
+
mocksCode?: string | null;
|
|
12
|
+
mocksImportPath?: string | null;
|
|
13
|
+
setupFileCode?: string | null;
|
|
14
|
+
packageDeps?: string | null;
|
|
15
|
+
tsconfigPaths?: string | null;
|
|
16
|
+
typeDefinitions?: string | null;
|
|
17
|
+
localImportPaths?: string[] | null;
|
|
18
|
+
reactMajorVersion?: number | null;
|
|
19
|
+
projectMemory?: string | null;
|
|
20
|
+
}): string;
|
|
21
|
+
export declare function buildFixPrompt(args: {
|
|
22
|
+
testFile: string;
|
|
23
|
+
testCode: string;
|
|
24
|
+
sourceFile: string | null;
|
|
25
|
+
sourceCode: string | null;
|
|
26
|
+
sourceImportPath?: string | null;
|
|
27
|
+
errorOutput: string;
|
|
28
|
+
mocksCode?: string | null;
|
|
29
|
+
mocksImportPath?: string | null;
|
|
30
|
+
setupFileCode?: string | null;
|
|
31
|
+
packageDeps?: string | null;
|
|
32
|
+
tsconfigPaths?: string | null;
|
|
33
|
+
typeDefinitions?: string | null;
|
|
34
|
+
localImportPaths?: string[] | null;
|
|
35
|
+
reactMajorVersion?: number | null;
|
|
36
|
+
projectMemory?: string | null;
|
|
37
|
+
}): string;
|
|
38
|
+
export interface FailedAttempt {
|
|
39
|
+
attemptNumber: number;
|
|
40
|
+
hypothesis: string;
|
|
41
|
+
failureReason: string;
|
|
42
|
+
}
|
|
43
|
+
export declare function buildRetryPrompt(failureOutput: string, failedAttempts?: FailedAttempt[]): string;
|
|
44
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/agent/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AA0I7D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAyDlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAA;IAC5B,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,GAAG,EAAE,mBAAmB,CAAA;IACxB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,GAAG,MAAM,CAgHT;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC9B,GAAG,MAAM,CA2HT;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,cAAc,GAAE,aAAa,EAAO,GAAG,MAAM,CAsCpG"}
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
import { buildSourceSkeleton, shouldUseSkeleton } from '../lib/skeleton.js';
|
|
2
|
+
// Matches both directory-level patterns (/api/, /services/) and file-level names
|
|
3
|
+
// (../../lib/api, ../apiClient, ./httpService) so axios instance files aren't missed.
|
|
4
|
+
const API_IMPORT_RE = /\/(?:api|services?|requests?|http|client|network)\/|\/(?:api|axios|http|request)(?:Client|Config|Instance|Service|Helper)?(?:\/|$)|[/.]api(?:[./]|$)/i;
|
|
5
|
+
function analyzeNetworkDeps(sourceCode) {
|
|
6
|
+
const usesAxios = /\baxios\b/.test(sourceCode);
|
|
7
|
+
const usesFetch = /\bfetch\s*\(/.test(sourceCode);
|
|
8
|
+
const usesCustomInstance = /axios\.create\s*\(/.test(sourceCode);
|
|
9
|
+
// Collect local imports from paths that look like API/service modules
|
|
10
|
+
const apiModuleImports = [];
|
|
11
|
+
for (const m of sourceCode.matchAll(/from\s+['"](\.[^'"]+)['"]/g)) {
|
|
12
|
+
const path = m[1];
|
|
13
|
+
if (API_IMPORT_RE.test(path)) {
|
|
14
|
+
apiModuleImports.push(path);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return { usesAxios, usesFetch, usesCustomInstance, apiModuleImports };
|
|
18
|
+
}
|
|
19
|
+
// Scans error output for an unhandled rejection caused by mockRejectedValueOnce.
|
|
20
|
+
// Vitest surfaces this as a top-level "Unhandled Rejection" or "Vitest caught N unhandled error(s)"
|
|
21
|
+
// even when the component catches the error internally — the test never awaited the error state.
|
|
22
|
+
function detectUnhandledRejection(errorOutput) {
|
|
23
|
+
const hasUnhandled = /unhandled\s+(promise\s+)?rejection|vitest caught \d+ unhandled/i.test(errorOutput);
|
|
24
|
+
const hasRejectedMock = /mockRejectedValue(Once)?/.test(errorOutput);
|
|
25
|
+
if (!hasUnhandled && !hasRejectedMock)
|
|
26
|
+
return null;
|
|
27
|
+
return [
|
|
28
|
+
'UNHANDLED REJECTION DETECTED — a mockRejectedValueOnce (or mockRejectedValue) promise is escaping the test scope.',
|
|
29
|
+
'The component may catch the error internally, but Vitest still requires the rejection to be resolved inside the test.',
|
|
30
|
+
'Required fix: after the action that triggers the rejection, await the resulting error state:',
|
|
31
|
+
" await waitFor(() => expect(screen.getByText(/error text/i)).toBeInTheDocument())",
|
|
32
|
+
'This chains the rejection inside the test scope. Without it, Vitest flags it as unhandled even if the UI handles it correctly.',
|
|
33
|
+
].join('\n');
|
|
34
|
+
}
|
|
35
|
+
// Scans error output for signs that a real HTTP request leaked through.
|
|
36
|
+
function detectRealRequestInError(errorOutput) {
|
|
37
|
+
const hasRealUrl = /https?:\/\/[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/.test(errorOutput);
|
|
38
|
+
const hasHttpStatus = /\bstatus:\s*[45]\d\d\b/.test(errorOutput);
|
|
39
|
+
const hasNetworkError = /ECONNREFUSED|ENOTFOUND|ETIMEDOUT|network\s+error/i.test(errorOutput);
|
|
40
|
+
if (!hasRealUrl && !hasHttpStatus && !hasNetworkError)
|
|
41
|
+
return null;
|
|
42
|
+
const lines = [
|
|
43
|
+
'REAL HTTP REQUEST DETECTED — the test is hitting the actual network. This is the root cause of the failure.',
|
|
44
|
+
'A mock is either missing entirely or applied at the wrong level. Fix this before anything else.',
|
|
45
|
+
];
|
|
46
|
+
const urlMatch = errorOutput.match(/https?:\/\/[^\s,'")\]}]+/);
|
|
47
|
+
if (urlMatch)
|
|
48
|
+
lines.push(`Intercepted URL: ${urlMatch[0]}`);
|
|
49
|
+
lines.push('Required fix: find which module the source file imports for its API calls and mock THAT module.', "vi.mock('axios') does NOT intercept axios.create() instances — you must mock the module that exports the instance or the service layer above it.");
|
|
50
|
+
return lines.join('\n');
|
|
51
|
+
}
|
|
52
|
+
function buildNetworkMockingGuidance(analysis, sourceFile) {
|
|
53
|
+
if (!analysis.usesAxios && !analysis.usesFetch && analysis.apiModuleImports.length === 0) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const lines = [
|
|
57
|
+
'NETWORK MOCKING (critical — a real HTTP request reaching the network is a test bug):',
|
|
58
|
+
];
|
|
59
|
+
if (analysis.apiModuleImports.length > 0) {
|
|
60
|
+
lines.push(`The source file imports from API/service modules: ${analysis.apiModuleImports.join(', ')}`, `Mock THOSE modules, not the underlying HTTP client:`, ` vi.mock('${analysis.apiModuleImports[0]}', () => ({ myFn: vi.fn() }))`, `This is the most reliable approach — it intercepts at the contract boundary regardless of which HTTP client is used underneath.`);
|
|
61
|
+
}
|
|
62
|
+
if (analysis.usesCustomInstance) {
|
|
63
|
+
lines.push(`The source creates a custom axios instance (axios.create()). vi.mock('axios') alone WILL NOT intercept calls made through a custom instance.`, `Instead: mock the module that exports the axios instance, or mock the API service module that wraps it.`);
|
|
64
|
+
}
|
|
65
|
+
else if (analysis.usesAxios && analysis.apiModuleImports.length === 0) {
|
|
66
|
+
lines.push(`The source imports axios directly. Mock it with: vi.mock('axios') and set return values with axios.get.mockResolvedValue({ data: ... })`);
|
|
67
|
+
}
|
|
68
|
+
if (analysis.usesFetch) {
|
|
69
|
+
lines.push(`The source uses fetch. Mock it with: vi.spyOn(global, 'fetch').mockResolvedValue(new Response(JSON.stringify(data)))`);
|
|
70
|
+
}
|
|
71
|
+
lines.push(`If you see a real URL (e.g. https://...) or a 401/403/network error in the test output, your mock is missing or at the wrong module level. Fix it before the test can pass.`);
|
|
72
|
+
return lines.join('\n');
|
|
73
|
+
}
|
|
74
|
+
// Extract exported names from a mocks file so the AI sees a concrete inventory.
|
|
75
|
+
function parseMockExports(code) {
|
|
76
|
+
const names = [];
|
|
77
|
+
// export const/let/var/function/class/async function name
|
|
78
|
+
for (const m of code.matchAll(/^export\s+(?:const|let|var|function|class|async\s+function)\s+(\w+)/gm)) {
|
|
79
|
+
names.push(m[1]);
|
|
80
|
+
}
|
|
81
|
+
// export { name1, name2 as alias2, ... }
|
|
82
|
+
for (const m of code.matchAll(/^export\s*\{([^}]+)\}/gm)) {
|
|
83
|
+
for (const part of m[1].split(',')) {
|
|
84
|
+
const alias = part.trim().split(/\s+as\s+/).pop()?.trim();
|
|
85
|
+
if (alias && /^\w+$/.test(alias))
|
|
86
|
+
names.push(alias);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// export default identifier
|
|
90
|
+
const defM = code.match(/^export\s+default\s+(\w+)/m);
|
|
91
|
+
if (defM)
|
|
92
|
+
names.push(`default (${defM[1]})`);
|
|
93
|
+
return [...new Set(names)];
|
|
94
|
+
}
|
|
95
|
+
export function buildSystemPrompt(env) {
|
|
96
|
+
return `You are a senior QA engineer with 10+ years of experience writing production test suites for ${env.language} projects. You use ${env.testRunner} and you take testing seriously.
|
|
97
|
+
|
|
98
|
+
Your tests catch real bugs. You think about what could go wrong — null inputs, empty arrays, async race conditions, error boundaries, permission checks, off-by-one errors — and you write assertions that would actually fail if the code broke. You never write a test just to hit a coverage number.
|
|
99
|
+
|
|
100
|
+
RULES — follow every one:
|
|
101
|
+
1. Write tests that verify real behavior: correctness, edge cases, boundary values, and error handling. Never write empty or trivial assertions (e.g. expect(true).toBe(true)).
|
|
102
|
+
2. Match the EXACT import style shown in the existing test file or PROJECT TEST EXAMPLES. If none exists, use the style from the source file.
|
|
103
|
+
3. Use path aliases from the PROJECT TYPESCRIPT CONFIG section (e.g. "@/components/Button" not "../../components/Button").
|
|
104
|
+
4. Only import from packages listed in PROJECT DEPENDENCIES. Do not invent packages that are not listed.
|
|
105
|
+
5. When a SHARED MOCK FILE is provided, its exported names are listed under "Available exports". Before writing the test, go through that list and identify every mock that relates to what the source file does (by name, type, or domain). Import and use ALL of those mocks. Never re-create inline vi.fn() / jest.fn() for anything already exported from the mocks file.
|
|
106
|
+
6. If you need a mock that is missing from the shared mock file, add it to that file AND import it in the test. Return BOTH files separated by exactly one line containing only: // ---MOCKS_FILE---
|
|
107
|
+
7. If a SHARED MOCK FILE (does not exist yet) section is shown — create it for any mocks you need and return it using the // ---MOCKS_FILE--- separator.
|
|
108
|
+
8. If a TEST SETUP FILE is shown, assume its globals and matchers are already available (e.g. expect(...).toBeInTheDocument()). Do NOT import or re-declare them.
|
|
109
|
+
9. TypeScript type safety: all test code must compile without type errors.
|
|
110
|
+
- Check PROJECT TYPESCRIPT CONFIG for strict flags — if strict or noImplicitAny is set, every value must be properly typed.
|
|
111
|
+
- Never use "as any", "@ts-ignore", or "@ts-expect-error" to suppress type errors. Use proper types or generics instead.
|
|
112
|
+
- For vi.fn() / jest.fn(), either let TypeScript infer the type from context or type it explicitly: vi.fn<Parameters<typeof fn>, ReturnType<typeof fn>>().
|
|
113
|
+
- Use ReturnType<>, Parameters<>, and other utility types to derive mock types from the real function signatures rather than guessing.
|
|
114
|
+
- When accessing optional properties, handle null/undefined correctly — do not assume they exist if the type says otherwise.
|
|
115
|
+
10. Every test file MUST contain at least one it() or test() call with real assertions. A file with only imports, describe() blocks, types, or helper functions is invalid and will be rejected. If you cannot write meaningful tests, write a minimal test that exercises the simplest exported function.
|
|
116
|
+
11. Structure ALL output using exactly these two XML blocks — nothing before, nothing after:
|
|
117
|
+
<thinking>
|
|
118
|
+
1. WHAT IS NEEDED: What functions/behaviors are untested or broken?
|
|
119
|
+
2. COMPONENT RENDER MAP (React components only): Before writing any assertion, list what is in the DOM in each relevant state (idle / loading / error / success). Read the JSX — check every ternary, &&, and switch — to determine whether a button is disabled vs unmounted, what text changes, what elements appear. Never assume a button is disabled during loading without verifying this in the JSX.
|
|
120
|
+
3. WHY IT FAILED (retries only): What is the structural root cause — wrong mock level, missing await, bad import path, type mismatch?
|
|
121
|
+
4. PLAN: List the exact steps you will take before writing a single line of code.
|
|
122
|
+
</thinking>
|
|
123
|
+
<code_output>
|
|
124
|
+
// complete test file here
|
|
125
|
+
</code_output>
|
|
126
|
+
12. Inside <code_output>: do NOT wrap in markdown code fences.
|
|
127
|
+
13. Inside <code_output>: output ONLY the test file content (or test file // ---MOCKS_FILE--- mocks file).
|
|
128
|
+
|
|
129
|
+
A good test suite you write will have:
|
|
130
|
+
- A happy-path test that confirms the main behavior works
|
|
131
|
+
- At least one edge-case test per function (empty input, zero, null, boundary values)
|
|
132
|
+
- Error-path tests for any function that throws, rejects, or returns an error state
|
|
133
|
+
- Async tests properly awaited — never fire-and-forget
|
|
134
|
+
- Clear, descriptive test names that read like a spec ("returns null when user is not authenticated")
|
|
135
|
+
|
|
136
|
+
Common failure causes to avoid:
|
|
137
|
+
- Wrong import paths (use aliases, not relative ../../ paths if the project uses aliases)
|
|
138
|
+
- Importing from test utils that are not in the dependency list
|
|
139
|
+
- Mocking modules that are already mocked in the setup file
|
|
140
|
+
- Using browser globals without jsdom (only use them if the setup file configures jsdom)
|
|
141
|
+
- Forgetting to await async functions
|
|
142
|
+
- React 18 act() async rule: ALWAYS await act() when it wraps async code — \`await act(async () => { ... })\`. Never store an unawaited act() call in a variable like \`const promise = act(async () => ...)\` without immediately awaiting it. Unawaited act() calls cause React state updates to leak into subsequent tests, producing cascading timeout failures and "Cannot read properties of null" errors in unrelated tests.
|
|
143
|
+
- vi.mock() paths are relative to the TEST FILE, not the source file. If the test is at src/features/auth/__tests__/Login.test.tsx and you need to mock src/components/Button, the mock path is ../../../components/Button — count directories from the TEST file's location, not the source file's.
|
|
144
|
+
- Loading state architecture: before asserting that a button is disabled during loading, check whether the component hides the button entirely and replaces it with a spinner. If the button is unmounted during loading rather than disabled, \`getByText("Submit")\` will throw — test for the spinner instead, or use \`queryByText("Submit")\` with a null assertion.
|
|
145
|
+
- Unhandled promise rejections: when testing error paths with mockRejectedValueOnce, the rejection must be fully resolved inside the test. After triggering the action, always use await waitFor(() => expect(errorElement).toBeInTheDocument()) to tie the rejection to the test scope. Never let a rejected mock promise go unawaited — Vitest will flag it as an unhandled error even if the component catches it internally.
|
|
146
|
+
- Real HTTP requests: NEVER let a real network call reach the internet. If you see a real URL (https://...), a 401/403 error, or a network timeout in test output, your mock is missing or at the wrong level. Every function that calls an API must be mocked before the test runs.
|
|
147
|
+
- Barrel file vi.mock() resolution: if a module is exported from a barrel/index file (e.g. src/components/index.ts re-exports Foo from ./Foo), mock the DIRECT file path, not the barrel. vi.mock('../components') mocks the barrel but the component may import directly from '../components/Foo' — making the mock miss. Always mock the specific module the source file actually imports. If unsure, mock both the direct file AND the barrel.
|
|
148
|
+
|
|
149
|
+
Test file pattern for this project: ${env.testFilePattern}
|
|
150
|
+
|
|
151
|
+
You MUST wrap your reasoning inside <thinking> tags and your complete file output inside <code_output> tags. Do not output anything outside of these two tags.`;
|
|
152
|
+
}
|
|
153
|
+
export function buildGeneratePrompt(args) {
|
|
154
|
+
const { sourceFile, sourceCode, existingTestCode, uncoveredFunctions, uncoveredLines, sourceImportPath, mocksCode, mocksImportPath, setupFileCode, packageDeps, tsconfigPaths, typeDefinitions, localImportPaths, reactMajorVersion, projectMemory, } = args;
|
|
155
|
+
const parts = [];
|
|
156
|
+
if (projectMemory) {
|
|
157
|
+
parts.push(projectMemory);
|
|
158
|
+
parts.push('');
|
|
159
|
+
}
|
|
160
|
+
if (packageDeps) {
|
|
161
|
+
parts.push('PROJECT DEPENDENCIES (only import from these):');
|
|
162
|
+
parts.push('```');
|
|
163
|
+
parts.push(packageDeps);
|
|
164
|
+
parts.push('```');
|
|
165
|
+
}
|
|
166
|
+
if (reactMajorVersion !== null && reactMajorVersion !== undefined && reactMajorVersion >= 18) {
|
|
167
|
+
parts.push(`\nREACT ${reactMajorVersion} DETECTED — act() async rule: every act(async () => { ... }) call MUST be awaited. Never assign an unawaited act() to a variable. Unawaited act() leaks state updates into subsequent tests, causing cascading failures and null-read errors in unrelated tests.`);
|
|
168
|
+
}
|
|
169
|
+
if (tsconfigPaths) {
|
|
170
|
+
parts.push('\nPROJECT TYPESCRIPT CONFIG (strict flags, target, and path aliases — follow these exactly):');
|
|
171
|
+
parts.push(tsconfigPaths);
|
|
172
|
+
}
|
|
173
|
+
if (localImportPaths && localImportPaths.length > 0) {
|
|
174
|
+
parts.push('\nLOCAL IMPORT PATHS (pre-computed relative to the test file — use these exact strings in vi.mock() calls, do NOT recount directory levels yourself):');
|
|
175
|
+
for (const p of localImportPaths)
|
|
176
|
+
parts.push(` ${p}`);
|
|
177
|
+
}
|
|
178
|
+
if (typeDefinitions) {
|
|
179
|
+
parts.push('\nTYPE DEFINITIONS (exported from files the source imports — use these exact shapes, do NOT invent properties or guess types):');
|
|
180
|
+
parts.push('```typescript');
|
|
181
|
+
parts.push(typeDefinitions);
|
|
182
|
+
parts.push('```');
|
|
183
|
+
}
|
|
184
|
+
if (setupFileCode) {
|
|
185
|
+
parts.push('\nTEST SETUP FILE (already loaded before every test — do NOT import it again):');
|
|
186
|
+
parts.push('```');
|
|
187
|
+
parts.push(setupFileCode);
|
|
188
|
+
parts.push('```');
|
|
189
|
+
}
|
|
190
|
+
if (mocksImportPath) {
|
|
191
|
+
if (mocksCode) {
|
|
192
|
+
const exports = parseMockExports(mocksCode);
|
|
193
|
+
parts.push(`\nSHARED MOCK FILE (import from: '${mocksImportPath}')`);
|
|
194
|
+
if (exports.length > 0) {
|
|
195
|
+
parts.push(`Available exports: ${exports.join(', ')}`);
|
|
196
|
+
parts.push(`↑ Before writing the test, identify which of these match the source file's domain and import every relevant one. Do NOT create inline mocks for anything already in this list.`);
|
|
197
|
+
}
|
|
198
|
+
parts.push('```');
|
|
199
|
+
parts.push(mocksCode);
|
|
200
|
+
parts.push('```');
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
parts.push(`\nSHARED MOCK FILE (does not exist yet) — create it if you need mocks, return it via the // ---MOCKS_FILE--- separator. Path: '${mocksImportPath}'`);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const networkGuidance = buildNetworkMockingGuidance(analyzeNetworkDeps(sourceCode), sourceFile);
|
|
207
|
+
if (networkGuidance) {
|
|
208
|
+
parts.push(`\n${networkGuidance}`);
|
|
209
|
+
}
|
|
210
|
+
const displaySource = buildSourceSkeleton(sourceCode, uncoveredFunctions);
|
|
211
|
+
const skeletonized = shouldUseSkeleton(sourceCode);
|
|
212
|
+
parts.push(`\nSOURCE FILE: ${sourceFile}${skeletonized ? ' (large file — bodies of already-covered functions collapsed; uncovered functions shown in full)' : ''}`);
|
|
213
|
+
if (sourceImportPath) {
|
|
214
|
+
parts.push(`SOURCE FILE IMPORT PATH: when importing the source in your test file, use exactly: '${sourceImportPath}'`);
|
|
215
|
+
}
|
|
216
|
+
parts.push('```');
|
|
217
|
+
parts.push(displaySource);
|
|
218
|
+
parts.push('```');
|
|
219
|
+
if (existingTestCode) {
|
|
220
|
+
parts.push('\nEXISTING TEST FILE (preserve all existing tests, only add new ones):');
|
|
221
|
+
parts.push('```');
|
|
222
|
+
parts.push(existingTestCode);
|
|
223
|
+
parts.push('```');
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
parts.push('\nNo existing test file — create one from scratch.');
|
|
227
|
+
}
|
|
228
|
+
if (uncoveredFunctions.length > 0) {
|
|
229
|
+
parts.push(`\nUNCOVERED FUNCTIONS (must write tests for these): ${uncoveredFunctions.join(', ')}`);
|
|
230
|
+
}
|
|
231
|
+
if (uncoveredLines.length > 0) {
|
|
232
|
+
parts.push(`\nUNCOVERED LINES: ${uncoveredLines.slice(0, 30).join(', ')}${uncoveredLines.length > 30 ? '…' : ''}`);
|
|
233
|
+
}
|
|
234
|
+
parts.push('\nWrite the complete test file now.');
|
|
235
|
+
return parts.join('\n');
|
|
236
|
+
}
|
|
237
|
+
export function buildFixPrompt(args) {
|
|
238
|
+
const { testFile, testCode, sourceFile, sourceCode, sourceImportPath, errorOutput, mocksCode, mocksImportPath, setupFileCode, packageDeps, tsconfigPaths, typeDefinitions, localImportPaths, reactMajorVersion, projectMemory } = args;
|
|
239
|
+
const parts = [];
|
|
240
|
+
parts.push('Your job is to fix a failing test file. Do NOT rewrite it from scratch — preserve every existing test and only change what is necessary to make them pass.');
|
|
241
|
+
parts.push('');
|
|
242
|
+
if (projectMemory) {
|
|
243
|
+
parts.push(projectMemory);
|
|
244
|
+
parts.push('');
|
|
245
|
+
}
|
|
246
|
+
if (packageDeps) {
|
|
247
|
+
parts.push('PROJECT DEPENDENCIES (only import from these):');
|
|
248
|
+
parts.push('```');
|
|
249
|
+
parts.push(packageDeps);
|
|
250
|
+
parts.push('```');
|
|
251
|
+
}
|
|
252
|
+
if (reactMajorVersion !== null && reactMajorVersion !== undefined && reactMajorVersion >= 18) {
|
|
253
|
+
parts.push(`\nREACT ${reactMajorVersion} DETECTED — act() async rule: every act(async () => { ... }) call MUST be awaited. Never assign an unawaited act() to a variable. Unawaited act() leaks state updates into subsequent tests, causing cascading failures and null-read errors in unrelated tests.`);
|
|
254
|
+
}
|
|
255
|
+
if (tsconfigPaths) {
|
|
256
|
+
parts.push('\nPROJECT TYPESCRIPT CONFIG:');
|
|
257
|
+
parts.push(tsconfigPaths);
|
|
258
|
+
}
|
|
259
|
+
if (localImportPaths && localImportPaths.length > 0) {
|
|
260
|
+
parts.push('\nLOCAL IMPORT PATHS (pre-computed relative to the test file — use these exact strings in vi.mock() calls, do NOT recount directory levels yourself):');
|
|
261
|
+
for (const p of localImportPaths)
|
|
262
|
+
parts.push(` ${p}`);
|
|
263
|
+
}
|
|
264
|
+
if (typeDefinitions) {
|
|
265
|
+
parts.push('\nTYPE DEFINITIONS (exported from files the source imports — use these exact shapes, do NOT invent properties or guess types):');
|
|
266
|
+
parts.push('```typescript');
|
|
267
|
+
parts.push(typeDefinitions);
|
|
268
|
+
parts.push('```');
|
|
269
|
+
}
|
|
270
|
+
if (setupFileCode) {
|
|
271
|
+
parts.push('\nTEST SETUP FILE (already loaded — do NOT import it again):');
|
|
272
|
+
parts.push('```');
|
|
273
|
+
parts.push(setupFileCode);
|
|
274
|
+
parts.push('```');
|
|
275
|
+
}
|
|
276
|
+
if (mocksImportPath) {
|
|
277
|
+
if (mocksCode) {
|
|
278
|
+
const exports = parseMockExports(mocksCode);
|
|
279
|
+
parts.push(`\nSHARED MOCK FILE (import from: '${mocksImportPath}')`);
|
|
280
|
+
if (exports.length > 0) {
|
|
281
|
+
parts.push(`Available exports: ${exports.join(', ')}`);
|
|
282
|
+
parts.push(`↑ Check this list against the source file — import every relevant mock. Do NOT create inline mocks for anything already exported here.`);
|
|
283
|
+
}
|
|
284
|
+
parts.push('```');
|
|
285
|
+
parts.push(mocksCode);
|
|
286
|
+
parts.push('```');
|
|
287
|
+
}
|
|
288
|
+
else {
|
|
289
|
+
parts.push(`\nSHARED MOCK FILE (does not exist yet) — create it if you need mocks, return it via the // ---MOCKS_FILE--- separator. Path: '${mocksImportPath}'`);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (sourceFile && sourceCode) {
|
|
293
|
+
const networkGuidance = buildNetworkMockingGuidance(analyzeNetworkDeps(sourceCode), sourceFile);
|
|
294
|
+
if (networkGuidance) {
|
|
295
|
+
parts.push(`\n${networkGuidance}`);
|
|
296
|
+
}
|
|
297
|
+
// For fix: skeleton with no function expansion — the test already tells the AI
|
|
298
|
+
// which function matters; showing signatures is enough to understand the API.
|
|
299
|
+
const FIX_SKELETON_THRESHOLD = 150;
|
|
300
|
+
const displaySource = sourceCode.split('\n').length > FIX_SKELETON_THRESHOLD
|
|
301
|
+
? buildSourceSkeleton(sourceCode, [])
|
|
302
|
+
: sourceCode;
|
|
303
|
+
const fixSkeletonized = displaySource !== sourceCode;
|
|
304
|
+
parts.push(`\nSOURCE FILE (what is being tested): ${sourceFile}${fixSkeletonized ? ' (large file — function bodies collapsed to signatures)' : ''}`);
|
|
305
|
+
if (sourceImportPath) {
|
|
306
|
+
parts.push(`SOURCE FILE IMPORT PATH: when importing the source in the test file, use exactly: '${sourceImportPath}'`);
|
|
307
|
+
}
|
|
308
|
+
parts.push('```');
|
|
309
|
+
parts.push(displaySource);
|
|
310
|
+
parts.push('```');
|
|
311
|
+
}
|
|
312
|
+
parts.push(`\nFAILING TEST FILE: ${testFile}`);
|
|
313
|
+
parts.push('```');
|
|
314
|
+
parts.push(testCode);
|
|
315
|
+
parts.push('```');
|
|
316
|
+
parts.push('\nFAILURE OUTPUT:');
|
|
317
|
+
parts.push('```');
|
|
318
|
+
parts.push(errorOutput.slice(0, 3000));
|
|
319
|
+
parts.push('```');
|
|
320
|
+
const realRequestWarning = detectRealRequestInError(errorOutput);
|
|
321
|
+
if (realRequestWarning)
|
|
322
|
+
parts.push(`\n⚠️ ${realRequestWarning}`);
|
|
323
|
+
const rejectionWarning = detectUnhandledRejection(errorOutput);
|
|
324
|
+
if (rejectionWarning)
|
|
325
|
+
parts.push(`\n⚠️ ${rejectionWarning}`);
|
|
326
|
+
// Detect wrong mock pattern: test uses vi.mock('axios') but source uses axios.create()
|
|
327
|
+
const testHasAxiosMock = /vi\.mock\(['"]axios['"]\)/.test(testCode);
|
|
328
|
+
const sourceHasCustomInstance = sourceCode != null && /axios\.create\s*\(/.test(sourceCode);
|
|
329
|
+
if (testHasAxiosMock && sourceHasCustomInstance) {
|
|
330
|
+
parts.push("\n⚠️ WRONG MOCK PATTERN: The test mocks 'axios' directly but the source file uses axios.create().", "vi.mock('axios') cannot intercept a custom axios instance.", 'You must mock the module that exports the axios instance, or mock the service/API module the source imports.');
|
|
331
|
+
}
|
|
332
|
+
parts.push('\nCommon causes to check:');
|
|
333
|
+
parts.push('- Wrong import path (use path aliases, not deep relative paths)');
|
|
334
|
+
parts.push('- Mock not set up correctly (check the shared mock file)');
|
|
335
|
+
parts.push('- Asserting on the wrong value or using the wrong matcher');
|
|
336
|
+
parts.push('- Async code not awaited');
|
|
337
|
+
parts.push('- Component/function API changed — check the source file');
|
|
338
|
+
parts.push('- Unhandled rejection: if the error output says "Unhandled Rejection" or "Vitest caught 1 unhandled error", a mockRejectedValueOnce promise is escaping the test scope. Fix by adding await waitFor(() => expect(errorElement).toBeInTheDocument()) after the triggering action, so the rejection is fully resolved inside the test.');
|
|
339
|
+
parts.push('\nReturn your response in the required <thinking> + <code_output> format.');
|
|
340
|
+
return parts.join('\n');
|
|
341
|
+
}
|
|
342
|
+
export function buildRetryPrompt(failureOutput, failedAttempts = []) {
|
|
343
|
+
const parts = [];
|
|
344
|
+
if (failedAttempts.length > 0) {
|
|
345
|
+
parts.push(`You have already attempted to fix this ${failedAttempts.length} time(s). Do NOT repeat these failed approaches:`);
|
|
346
|
+
for (const a of failedAttempts) {
|
|
347
|
+
const hyp = a.hypothesis ? `Planned: [${a.hypothesis.slice(0, 300)}]` : '(no plan recorded)';
|
|
348
|
+
parts.push(`- Attempt ${a.attemptNumber}: ${hyp} → failed with: ${a.failureReason.slice(0, 300)}`);
|
|
349
|
+
}
|
|
350
|
+
parts.push('');
|
|
351
|
+
}
|
|
352
|
+
parts.push(`The tests failed. Error output:`);
|
|
353
|
+
parts.push('```');
|
|
354
|
+
parts.push(failureOutput.slice(0, 3000));
|
|
355
|
+
parts.push('```');
|
|
356
|
+
const realRequestWarning = detectRealRequestInError(failureOutput);
|
|
357
|
+
if (realRequestWarning)
|
|
358
|
+
parts.push(`\n⚠️ ${realRequestWarning}`);
|
|
359
|
+
const rejectionWarning = detectUnhandledRejection(failureOutput);
|
|
360
|
+
if (rejectionWarning)
|
|
361
|
+
parts.push(`\n⚠️ ${rejectionWarning}`);
|
|
362
|
+
parts.push('');
|
|
363
|
+
parts.push('Common causes:');
|
|
364
|
+
parts.push('- Wrong import path — check the path aliases and dependency list from the original prompt');
|
|
365
|
+
parts.push('- Missing mock — if a module needs mocking, add it to the shared mock file');
|
|
366
|
+
parts.push('- Wrong vi.mock() path: mock paths are relative to the TEST FILE, not the source file. Count up from the test file\'s directory to reach the mocked module — if the test is in src/features/x/__tests__/ and mocks src/components/, that is ../../../components/, not ../components/.');
|
|
367
|
+
parts.push('- Barrel file mock miss: if a module is re-exported from a barrel/index file, mocking the barrel (vi.mock(\'../components\')) will NOT intercept imports of the direct file (\'../components/Foo\'). Mock the specific file the source actually imports. If unsure, mock both.');
|
|
368
|
+
parts.push('- Wrong API — use only methods that exist in the installed version of the library');
|
|
369
|
+
parts.push('- Type error — make sure the types match what the source file exports');
|
|
370
|
+
parts.push('- React 18 act() async: every act(async () => ...) MUST be awaited. Unawaited act() calls cause state to leak across tests, producing "Cannot read properties of null" or timeout failures in unrelated tests. Fix: add await before every act() call that wraps async code.');
|
|
371
|
+
parts.push('- Loading state — if the error is "Unable to find element" on a Submit/Save button, the component likely unmounts the button during loading rather than disabling it. Assert on the spinner or loading indicator instead.');
|
|
372
|
+
parts.push('- Unhandled rejection ("Vitest caught 1 unhandled error" / "Unhandled Rejection"): a mockRejectedValueOnce promise is escaping the test scope. After the action that triggers the rejection, add: await waitFor(() => expect(screen.getByText(/error/i)).toBeInTheDocument()) — this keeps the rejection chained inside the test so Vitest doesn\'t treat it as unhandled. The component may already catch the error internally, but the test still needs to await the resulting state change.');
|
|
373
|
+
parts.push('');
|
|
374
|
+
parts.push('Fix the issue and return your response in the required <thinking> + <code_output> format.');
|
|
375
|
+
return parts.join('\n');
|
|
376
|
+
}
|
|
377
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agent/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../../src/ci/comment.ts"],"names":[],"mappings":""}
|