@cotestdev/ai-runner 0.0.5 → 0.0.7
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/.github/workflows/playwright.yml +27 -0
- package/dist/agents/logger.d.ts.map +1 -0
- package/dist/agents/logger.js.map +1 -0
- package/dist/{ai-runner/src/agents → agents}/playwright-executor.d.ts +3 -1
- package/dist/agents/playwright-executor.d.ts.map +1 -0
- package/dist/{ai-runner/src/agents → agents}/playwright-executor.js +74 -18
- package/dist/agents/playwright-executor.js.map +1 -0
- package/dist/agents/tools/playwright-backend-adapter.d.ts.map +1 -0
- package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.js +2 -1
- package/dist/agents/tools/playwright-backend-adapter.js.map +1 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/{core-infra/src → agents}/types.js.map +1 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -0
- package/dist/{ai-runner/src/runner.d.ts → runner.d.ts} +7 -2
- package/dist/runner.d.ts.map +1 -0
- package/dist/{ai-runner/src/runner.js → runner.js} +23 -12
- package/dist/runner.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/playwright-groups.d.ts.map +1 -0
- package/dist/tools/playwright-groups.js.map +1 -0
- package/dist/types/external.d.ts.map +1 -0
- package/dist/types/external.js.map +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +5 -9
- package/playwright.config.ts +38 -0
- package/src/agents/logger.ts +20 -0
- package/src/agents/playwright-executor.ts +284 -0
- package/src/agents/tools/playwright-backend-adapter.ts +135 -0
- package/src/agents/tools/playwright-mcp-types.d.ts +72 -0
- package/src/agents/types.ts +80 -0
- package/src/index.ts +27 -0
- package/src/runner.ts +237 -0
- package/src/tools/index.ts +48 -0
- package/src/tools/playwright-groups.ts +54 -0
- package/src/types/external.ts +7 -0
- package/src/types/index.ts +118 -0
- package/tests/agent/playwright.config.ts +32 -0
- package/tests/agent/test-heal-agent.spec.ts +42 -0
- package/tsconfig.json +26 -0
- package/dist/ai-runner/src/agents/logger.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/logger.js.map +0 -1
- package/dist/ai-runner/src/agents/playwright-executor.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/playwright-executor.js.map +0 -1
- package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/tools/playwright-backend-adapter.js.map +0 -1
- package/dist/ai-runner/src/agents/types.d.ts.map +0 -1
- package/dist/ai-runner/src/agents/types.js.map +0 -1
- package/dist/ai-runner/src/index.d.ts.map +0 -1
- package/dist/ai-runner/src/index.js.map +0 -1
- package/dist/ai-runner/src/runner.d.ts.map +0 -1
- package/dist/ai-runner/src/runner.js.map +0 -1
- package/dist/ai-runner/src/tools/index.d.ts.map +0 -1
- package/dist/ai-runner/src/tools/index.js.map +0 -1
- package/dist/ai-runner/src/tools/playwright-groups.d.ts.map +0 -1
- package/dist/ai-runner/src/tools/playwright-groups.js.map +0 -1
- package/dist/ai-runner/src/types/external.d.ts.map +0 -1
- package/dist/ai-runner/src/types/external.js.map +0 -1
- package/dist/ai-runner/src/types/index.d.ts.map +0 -1
- package/dist/ai-runner/src/types/index.js.map +0 -1
- package/dist/core-infra/src/directory-validator.d.ts +0 -29
- package/dist/core-infra/src/directory-validator.d.ts.map +0 -1
- package/dist/core-infra/src/directory-validator.js +0 -91
- package/dist/core-infra/src/directory-validator.js.map +0 -1
- package/dist/core-infra/src/index.d.ts +0 -14
- package/dist/core-infra/src/index.d.ts.map +0 -1
- package/dist/core-infra/src/index.js +0 -44
- package/dist/core-infra/src/index.js.map +0 -1
- package/dist/core-infra/src/mcp/file-mcp-manager.d.ts +0 -14
- package/dist/core-infra/src/mcp/file-mcp-manager.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/file-mcp-manager.js +0 -46
- package/dist/core-infra/src/mcp/file-mcp-manager.js.map +0 -1
- package/dist/core-infra/src/mcp/index.d.ts +0 -21
- package/dist/core-infra/src/mcp/index.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/index.js +0 -17
- package/dist/core-infra/src/mcp/index.js.map +0 -1
- package/dist/core-infra/src/mcp/mcp-client.d.ts +0 -128
- package/dist/core-infra/src/mcp/mcp-client.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/mcp-client.js +0 -163
- package/dist/core-infra/src/mcp/mcp-client.js.map +0 -1
- package/dist/core-infra/src/mcp/mcp-manager.d.ts +0 -21
- package/dist/core-infra/src/mcp/mcp-manager.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/mcp-manager.js +0 -99
- package/dist/core-infra/src/mcp/mcp-manager.js.map +0 -1
- package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts +0 -19
- package/dist/core-infra/src/mcp/playwright-mcp-manager.d.ts.map +0 -1
- package/dist/core-infra/src/mcp/playwright-mcp-manager.js +0 -121
- package/dist/core-infra/src/mcp/playwright-mcp-manager.js.map +0 -1
- package/dist/core-infra/src/model.d.ts +0 -13
- package/dist/core-infra/src/model.d.ts.map +0 -1
- package/dist/core-infra/src/model.js +0 -191
- package/dist/core-infra/src/model.js.map +0 -1
- package/dist/core-infra/src/repositories/BaseRepository.d.ts +0 -69
- package/dist/core-infra/src/repositories/BaseRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/BaseRepository.js +0 -213
- package/dist/core-infra/src/repositories/BaseRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/DirectoryRepository.d.ts +0 -70
- package/dist/core-infra/src/repositories/DirectoryRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/DirectoryRepository.js +0 -336
- package/dist/core-infra/src/repositories/DirectoryRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/ExplorationRepository.d.ts +0 -34
- package/dist/core-infra/src/repositories/ExplorationRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/ExplorationRepository.js +0 -54
- package/dist/core-infra/src/repositories/ExplorationRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/FileRepository.d.ts +0 -56
- package/dist/core-infra/src/repositories/FileRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/FileRepository.js +0 -132
- package/dist/core-infra/src/repositories/FileRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts +0 -38
- package/dist/core-infra/src/repositories/ModelConfigRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/ModelConfigRepository.js +0 -59
- package/dist/core-infra/src/repositories/ModelConfigRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/ProjectRepository.d.ts +0 -32
- package/dist/core-infra/src/repositories/ProjectRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/ProjectRepository.js +0 -67
- package/dist/core-infra/src/repositories/ProjectRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/SettingsRepository.d.ts +0 -19
- package/dist/core-infra/src/repositories/SettingsRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/SettingsRepository.js +0 -72
- package/dist/core-infra/src/repositories/SettingsRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TableDataRepository.d.ts +0 -22
- package/dist/core-infra/src/repositories/TableDataRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TableDataRepository.js +0 -33
- package/dist/core-infra/src/repositories/TableDataRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TestCaseRepository.d.ts +0 -120
- package/dist/core-infra/src/repositories/TestCaseRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TestCaseRepository.js +0 -463
- package/dist/core-infra/src/repositories/TestCaseRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TestPlanRepository.d.ts +0 -35
- package/dist/core-infra/src/repositories/TestPlanRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TestPlanRepository.js +0 -80
- package/dist/core-infra/src/repositories/TestPlanRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/TestResultRepository.d.ts +0 -30
- package/dist/core-infra/src/repositories/TestResultRepository.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/TestResultRepository.js +0 -54
- package/dist/core-infra/src/repositories/TestResultRepository.js.map +0 -1
- package/dist/core-infra/src/repositories/index.d.ts +0 -17
- package/dist/core-infra/src/repositories/index.d.ts.map +0 -1
- package/dist/core-infra/src/repositories/index.js +0 -31
- package/dist/core-infra/src/repositories/index.js.map +0 -1
- package/dist/core-infra/src/storageService.d.ts +0 -131
- package/dist/core-infra/src/storageService.d.ts.map +0 -1
- package/dist/core-infra/src/storageService.js +0 -304
- package/dist/core-infra/src/storageService.js.map +0 -1
- package/dist/core-infra/src/types.d.ts +0 -219
- package/dist/core-infra/src/types.d.ts.map +0 -1
- package/dist/core-infra/src/types.js +0 -3
- /package/dist/{ai-runner/src/agents → agents}/logger.d.ts +0 -0
- /package/dist/{ai-runner/src/agents → agents}/logger.js +0 -0
- /package/dist/{ai-runner/src/agents → agents}/tools/playwright-backend-adapter.d.ts +0 -0
- /package/dist/{ai-runner/src/agents → agents}/types.d.ts +0 -0
- /package/dist/{ai-runner/src/agents → agents}/types.js +0 -0
- /package/dist/{ai-runner/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{ai-runner/src/index.js → index.js} +0 -0
- /package/dist/{ai-runner/src/tools → tools}/index.d.ts +0 -0
- /package/dist/{ai-runner/src/tools → tools}/index.js +0 -0
- /package/dist/{ai-runner/src/tools → tools}/playwright-groups.d.ts +0 -0
- /package/dist/{ai-runner/src/tools → tools}/playwright-groups.js +0 -0
- /package/dist/{ai-runner/src/types → types}/external.d.ts +0 -0
- /package/dist/{ai-runner/src/types → types}/external.js +0 -0
- /package/dist/{ai-runner/src/types → types}/index.d.ts +0 -0
- /package/dist/{ai-runner/src/types → types}/index.js +0 -0
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TableDataRepository = void 0;
|
|
4
|
-
const BaseRepository_1 = require("./BaseRepository");
|
|
5
|
-
/**
|
|
6
|
-
* TableDataRepository handles storage operations for test table data
|
|
7
|
-
* Stores table data in data directory as {testId}.json
|
|
8
|
-
*/
|
|
9
|
-
class TableDataRepository extends BaseRepository_1.BaseRepository {
|
|
10
|
-
constructor(projectId) {
|
|
11
|
-
super(`projects/${projectId}/data`);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Save table data for a test
|
|
15
|
-
*/
|
|
16
|
-
async saveTableData(tableData) {
|
|
17
|
-
await this.save(tableData.testId, tableData);
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Load table data for a test
|
|
21
|
-
*/
|
|
22
|
-
async loadTableData(testId) {
|
|
23
|
-
return this.load(testId);
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Delete table data for a test
|
|
27
|
-
*/
|
|
28
|
-
async deleteTableData(testId) {
|
|
29
|
-
await this.delete(testId);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.TableDataRepository = TableDataRepository;
|
|
33
|
-
//# sourceMappingURL=TableDataRepository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableDataRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/TableDataRepository.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAGlD;;;GAGG;AACH,MAAa,mBAAoB,SAAQ,+BAAc;IACrD,YAAY,SAAiB;QAC3B,KAAK,CAAC,YAAY,SAAS,OAAO,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,SAAoB;QACtC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,IAAI,CAAY,MAAM,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC;CACF;AAzBD,kDAyBC"}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { BaseRepository } from './BaseRepository';
|
|
2
|
-
import { TestCase, TestStep, TestDirectory } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* TestCaseRepository handles all storage operations for test cases
|
|
5
|
-
* Responsible for managing test case data, steps, and associated scripts
|
|
6
|
-
* Supports hierarchical directory organization (up to 3 levels)
|
|
7
|
-
*/
|
|
8
|
-
export declare class TestCaseRepository extends BaseRepository {
|
|
9
|
-
constructor(projectId: string);
|
|
10
|
-
/**
|
|
11
|
-
* Get scripts directory - project-aware
|
|
12
|
-
* When project is active: ~/.test_agent/projects/{projectId}/scripts
|
|
13
|
-
* When no project: ~/.test_agent/scripts
|
|
14
|
-
*/
|
|
15
|
-
private getScriptsDir;
|
|
16
|
-
/**
|
|
17
|
-
* Get steps directory - project-aware
|
|
18
|
-
* When project is active: ~/.test_agent/projects/{projectId}/steps
|
|
19
|
-
* When no project: ~/.test_agent/steps
|
|
20
|
-
*/
|
|
21
|
-
private getStepsDir;
|
|
22
|
-
/**
|
|
23
|
-
* Ensure scripts directory exists
|
|
24
|
-
*/
|
|
25
|
-
private ensureScriptsDir;
|
|
26
|
-
/**
|
|
27
|
-
* Ensure steps directory exists
|
|
28
|
-
*/
|
|
29
|
-
private ensureStepsDir;
|
|
30
|
-
/**
|
|
31
|
-
* Save a test case with support for directory paths
|
|
32
|
-
*/
|
|
33
|
-
saveTestCase(testCase: TestCase): void;
|
|
34
|
-
/**
|
|
35
|
-
* Load a test case with its steps and script
|
|
36
|
-
*/
|
|
37
|
-
loadTestCase(testId: string, path?: string): TestCase | null;
|
|
38
|
-
/**
|
|
39
|
-
* Recursively find a test case file by ID
|
|
40
|
-
*/
|
|
41
|
-
private findTestCaseFile;
|
|
42
|
-
/**
|
|
43
|
-
* List all test cases sorted by creation date (newest first)
|
|
44
|
-
* Returns a hierarchical directory tree
|
|
45
|
-
*/
|
|
46
|
-
listTestCases(): TestCase[];
|
|
47
|
-
/**
|
|
48
|
-
* Build complete directory tree
|
|
49
|
-
*/
|
|
50
|
-
buildDirectoryTree(): TestDirectory;
|
|
51
|
-
/**
|
|
52
|
-
* Recursively build directory tree
|
|
53
|
-
*/
|
|
54
|
-
private buildDirectoryTreeRecursive;
|
|
55
|
-
/**
|
|
56
|
-
* List test cases in a specific directory recursively.
|
|
57
|
-
* Loads full test data including steps
|
|
58
|
-
*/
|
|
59
|
-
listTestCasesRecursively(dirPath: string, seen?: Set<string>): TestCase[];
|
|
60
|
-
/**
|
|
61
|
-
* List test cases in a specific directory
|
|
62
|
-
*/
|
|
63
|
-
private listTestCasesInDirectory;
|
|
64
|
-
/**
|
|
65
|
-
* Delete a test case and its associated data
|
|
66
|
-
*/
|
|
67
|
-
deleteTestCase(testId: string): void;
|
|
68
|
-
/**
|
|
69
|
-
* Save test case steps
|
|
70
|
-
*/
|
|
71
|
-
saveTestSteps(testId: string, steps: TestStep[]): void;
|
|
72
|
-
/**
|
|
73
|
-
* Load test case steps
|
|
74
|
-
*/
|
|
75
|
-
loadTestSteps(testId: string): TestStep[];
|
|
76
|
-
/**
|
|
77
|
-
* Delete all steps for a test case
|
|
78
|
-
*/
|
|
79
|
-
private deleteTestSteps;
|
|
80
|
-
updateStepBreakPoint(testId: string, id: string, isBreakpoint?: boolean): void;
|
|
81
|
-
/**
|
|
82
|
-
* Save a single test step or insert a new one
|
|
83
|
-
* @returns true if updated, false if created
|
|
84
|
-
*/
|
|
85
|
-
saveTestStep(testId: string, step: {
|
|
86
|
-
id: string;
|
|
87
|
-
description?: string;
|
|
88
|
-
isBreakpoint?: boolean;
|
|
89
|
-
}, afterStepId?: string): boolean;
|
|
90
|
-
/**
|
|
91
|
-
* Insert a new step after a specific step
|
|
92
|
-
*/
|
|
93
|
-
insertStep(testId: string, afterStepId: string | null | undefined, newStep: TestStep): void;
|
|
94
|
-
/**
|
|
95
|
-
* Delete a specific step by ID
|
|
96
|
-
*/
|
|
97
|
-
deleteStep(testId: string, stepId: string): boolean;
|
|
98
|
-
/**
|
|
99
|
-
* Save Playwright script for a test case
|
|
100
|
-
*/
|
|
101
|
-
saveTestScript(testId: string, script: string): void;
|
|
102
|
-
/**
|
|
103
|
-
* Load Playwright script for a test case
|
|
104
|
-
*/
|
|
105
|
-
loadTestScript(testId: string): string | undefined;
|
|
106
|
-
hasTestScript(testId: string): boolean;
|
|
107
|
-
/**
|
|
108
|
-
* Delete Playwright script for a test case
|
|
109
|
-
*/
|
|
110
|
-
private deleteTestScript;
|
|
111
|
-
/**
|
|
112
|
-
* Get the file path for a test step file
|
|
113
|
-
*/
|
|
114
|
-
private getStepsFilePath;
|
|
115
|
-
/**
|
|
116
|
-
* Get the file path for a test script file
|
|
117
|
-
*/
|
|
118
|
-
private getScriptFilePath;
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=TestCaseRepository.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestCaseRepository.d.ts","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/TestCaseRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI7D;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;gBACxC,SAAS,EAAE,MAAM;IAI7B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAMrB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAmBtC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAoC5D;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA6BxB;;;OAGG;IACH,aAAa,IAAI,QAAQ,EAAE;IAI3B;;OAEG;IACH,kBAAkB,IAAI,aAAa;IAInC;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAuEnC;;;KAGC;IACD,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,GAAG,CAAC,MAAM,CAAa,GAAG,QAAQ,EAAE;IA+BpF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA6BhC;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IASpC;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI;IAkBtD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE;IASzC;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO;IASvE;;;OAGG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,EAClE,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO;IAuCV;;OAEG;IACH,UAAU,CACR,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,OAAO,EAAE,QAAQ,GAChB,IAAI;IAsBP;;OAEG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAsBnD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAQpD;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQlD,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B"}
|
|
@@ -1,463 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TestCaseRepository = void 0;
|
|
4
|
-
const BaseRepository_1 = require("./BaseRepository");
|
|
5
|
-
const path_1 = require("path");
|
|
6
|
-
const fs_1 = require("fs");
|
|
7
|
-
/**
|
|
8
|
-
* TestCaseRepository handles all storage operations for test cases
|
|
9
|
-
* Responsible for managing test case data, steps, and associated scripts
|
|
10
|
-
* Supports hierarchical directory organization (up to 3 levels)
|
|
11
|
-
*/
|
|
12
|
-
class TestCaseRepository extends BaseRepository_1.BaseRepository {
|
|
13
|
-
constructor(projectId) {
|
|
14
|
-
super((0, path_1.join)("projects", projectId, 'tests'));
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Get scripts directory - project-aware
|
|
18
|
-
* When project is active: ~/.test_agent/projects/{projectId}/scripts
|
|
19
|
-
* When no project: ~/.test_agent/scripts
|
|
20
|
-
*/
|
|
21
|
-
getScriptsDir() {
|
|
22
|
-
const testsBaseDir = this.getBaseDir(); // ~/.test_agent/projects/{projectId}/tests or ~/.test_agent/tests
|
|
23
|
-
const parentDir = (0, path_1.join)(testsBaseDir, '..');
|
|
24
|
-
return (0, path_1.join)(parentDir, 'scripts');
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Get steps directory - project-aware
|
|
28
|
-
* When project is active: ~/.test_agent/projects/{projectId}/steps
|
|
29
|
-
* When no project: ~/.test_agent/steps
|
|
30
|
-
*/
|
|
31
|
-
getStepsDir() {
|
|
32
|
-
const testsBaseDir = this.getBaseDir(); // ~/.test_agent/projects/{projectId}/tests or ~/.test_agent/tests
|
|
33
|
-
const parentDir = (0, path_1.join)(testsBaseDir, '..');
|
|
34
|
-
return (0, path_1.join)(parentDir, 'steps');
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Ensure scripts directory exists
|
|
38
|
-
*/
|
|
39
|
-
ensureScriptsDir() {
|
|
40
|
-
const scriptsDir = this.getScriptsDir();
|
|
41
|
-
if (!(0, fs_1.existsSync)(scriptsDir)) {
|
|
42
|
-
(0, fs_1.mkdirSync)(scriptsDir, { recursive: true });
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Ensure steps directory exists
|
|
47
|
-
*/
|
|
48
|
-
ensureStepsDir() {
|
|
49
|
-
const stepsDir = this.getStepsDir();
|
|
50
|
-
if (!(0, fs_1.existsSync)(stepsDir)) {
|
|
51
|
-
(0, fs_1.mkdirSync)(stepsDir, { recursive: true });
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Save a test case with support for directory paths
|
|
56
|
-
*/
|
|
57
|
-
saveTestCase(testCase) {
|
|
58
|
-
const dirPath = (0, path_1.join)(this.getBaseDir(), testCase.path);
|
|
59
|
-
// Ensure directory exists
|
|
60
|
-
if (!(0, fs_1.existsSync)(dirPath)) {
|
|
61
|
-
(0, fs_1.mkdirSync)(dirPath, { recursive: true });
|
|
62
|
-
}
|
|
63
|
-
// Save to file within the directory path
|
|
64
|
-
const filePath = (0, path_1.join)(dirPath, `${testCase.id}.json`);
|
|
65
|
-
// C:\Users\85847\.test_agent\projects\43af4db4-3249-4135-b279-97b24f27106b\tests\aaa\ccc\ddd
|
|
66
|
-
(0, fs_1.writeFileSync)(filePath, JSON.stringify(testCase, (key, value) => {
|
|
67
|
-
if (key === 'steps' || key === 'playwrightScript' || key === 'table') {
|
|
68
|
-
return undefined; // Return undefined to ignore this field
|
|
69
|
-
}
|
|
70
|
-
return value;
|
|
71
|
-
}, 2), 'utf-8');
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Load a test case with its steps and script
|
|
75
|
-
*/
|
|
76
|
-
loadTestCase(testId, path) {
|
|
77
|
-
let filePath;
|
|
78
|
-
if (path) {
|
|
79
|
-
filePath = (0, path_1.join)(this.getBaseDir(), path, `${testId}.json`);
|
|
80
|
-
}
|
|
81
|
-
else {
|
|
82
|
-
// Try to find test case in the base directory or any subdirectory
|
|
83
|
-
filePath = (0, path_1.join)(this.getBaseDir(), `${testId}.json`);
|
|
84
|
-
if (!(0, fs_1.existsSync)(filePath)) {
|
|
85
|
-
// Search in all directories
|
|
86
|
-
const found = this.findTestCaseFile(testId, this.getBaseDir());
|
|
87
|
-
if (!found) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
filePath = found;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
if (!(0, fs_1.existsSync)(filePath)) {
|
|
94
|
-
return null;
|
|
95
|
-
}
|
|
96
|
-
try {
|
|
97
|
-
const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
98
|
-
const testCase = JSON.parse(content);
|
|
99
|
-
// Load associated steps
|
|
100
|
-
const steps = this.loadTestSteps(testId);
|
|
101
|
-
testCase.steps = steps;
|
|
102
|
-
return testCase;
|
|
103
|
-
}
|
|
104
|
-
catch {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Recursively find a test case file by ID
|
|
110
|
-
*/
|
|
111
|
-
findTestCaseFile(testId, searchPath) {
|
|
112
|
-
try {
|
|
113
|
-
const items = (0, fs_1.readdirSync)(searchPath);
|
|
114
|
-
for (const item of items) {
|
|
115
|
-
const itemPath = (0, path_1.join)(searchPath, item);
|
|
116
|
-
const stat = (0, fs_1.statSync)(itemPath);
|
|
117
|
-
if (stat.isDirectory() && item !== 'info.json') {
|
|
118
|
-
// Skip deep nesting (max 3 levels from tests root)
|
|
119
|
-
const relativePath = (0, path_1.relative)(this.getBaseDir(), itemPath);
|
|
120
|
-
if (relativePath.split(/[\/\\]/).length > 3) {
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
const result = this.findTestCaseFile(testId, itemPath);
|
|
124
|
-
if (result) {
|
|
125
|
-
return result;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
else if (item === `${testId}.json`) {
|
|
129
|
-
return itemPath;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
catch {
|
|
134
|
-
// Skip if unable to read directory
|
|
135
|
-
}
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* List all test cases sorted by creation date (newest first)
|
|
140
|
-
* Returns a hierarchical directory tree
|
|
141
|
-
*/
|
|
142
|
-
listTestCases() {
|
|
143
|
-
return this.listTestCasesInDirectory(this.getBaseDir());
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Build complete directory tree
|
|
147
|
-
*/
|
|
148
|
-
buildDirectoryTree() {
|
|
149
|
-
return this.buildDirectoryTreeRecursive(this.getBaseDir(), '');
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Recursively build directory tree
|
|
153
|
-
*/
|
|
154
|
-
buildDirectoryTreeRecursive(fullPath, relativePath) {
|
|
155
|
-
const pathParts = relativePath ? relativePath.split('/') : [];
|
|
156
|
-
const name = pathParts.length > 0 ? pathParts[pathParts.length - 1] : 'root';
|
|
157
|
-
// Load directory info if exists
|
|
158
|
-
let info = undefined;
|
|
159
|
-
const infoPath = (0, path_1.join)(fullPath, 'info.json');
|
|
160
|
-
if ((0, fs_1.existsSync)(infoPath)) {
|
|
161
|
-
try {
|
|
162
|
-
const content = (0, fs_1.readFileSync)(infoPath, 'utf-8');
|
|
163
|
-
info = JSON.parse(content);
|
|
164
|
-
}
|
|
165
|
-
catch {
|
|
166
|
-
// Skip invalid info.json
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
const tree = {
|
|
170
|
-
path: relativePath,
|
|
171
|
-
name,
|
|
172
|
-
info,
|
|
173
|
-
children: [],
|
|
174
|
-
tests: [],
|
|
175
|
-
};
|
|
176
|
-
try {
|
|
177
|
-
const items = (0, fs_1.readdirSync)(fullPath);
|
|
178
|
-
for (const item of items) {
|
|
179
|
-
if (item === 'info.json') {
|
|
180
|
-
continue;
|
|
181
|
-
}
|
|
182
|
-
const itemPath = (0, path_1.join)(fullPath, item);
|
|
183
|
-
const stat = (0, fs_1.statSync)(itemPath);
|
|
184
|
-
if (stat.isDirectory()) {
|
|
185
|
-
const subPath = relativePath ? `${relativePath}/${item}` : item;
|
|
186
|
-
// Check depth (max 3 levels)
|
|
187
|
-
if (subPath.split('/').length <= 3) {
|
|
188
|
-
tree.children.push(this.buildDirectoryTreeRecursive(itemPath, subPath));
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// Load test files from current directory
|
|
193
|
-
for (const item of items) {
|
|
194
|
-
if (item.endsWith('.json') && item !== 'info.json') {
|
|
195
|
-
try {
|
|
196
|
-
const content = (0, fs_1.readFileSync)((0, path_1.join)(fullPath, item), 'utf-8');
|
|
197
|
-
const testCase = JSON.parse(content);
|
|
198
|
-
// Only include tests that belong to this directory
|
|
199
|
-
if (testCase.path === relativePath) {
|
|
200
|
-
tree.tests.push(testCase);
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
// Skip invalid test files
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
// Sort children by name and tests by creation date
|
|
209
|
-
tree.children.sort((a, b) => a.name.localeCompare(b.name));
|
|
210
|
-
tree.tests.sort((a, b) => b.createdAt - a.createdAt);
|
|
211
|
-
}
|
|
212
|
-
catch {
|
|
213
|
-
// Return tree with no children/tests if unable to read
|
|
214
|
-
}
|
|
215
|
-
return tree;
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* List test cases in a specific directory recursively.
|
|
219
|
-
* Loads full test data including steps
|
|
220
|
-
*/
|
|
221
|
-
listTestCasesRecursively(dirPath, seen = new Set()) {
|
|
222
|
-
const fullPath = (0, path_1.join)(this.getBaseDir(), dirPath);
|
|
223
|
-
const tests = [];
|
|
224
|
-
const items = (0, fs_1.readdirSync)(fullPath);
|
|
225
|
-
for (const item of items) {
|
|
226
|
-
const itemPath = (0, path_1.join)(fullPath, item);
|
|
227
|
-
const stat = (0, fs_1.statSync)(itemPath);
|
|
228
|
-
if (stat.isDirectory()) {
|
|
229
|
-
// Recursively list tests in subdirectories
|
|
230
|
-
const subDirPath = dirPath ? `${dirPath}/${item}` : item;
|
|
231
|
-
tests.push(...this.listTestCasesRecursively(subDirPath, seen));
|
|
232
|
-
}
|
|
233
|
-
else if (item.endsWith('.json') && item !== 'info.json') {
|
|
234
|
-
// Load test case file
|
|
235
|
-
const testId = item.replace('.json', '');
|
|
236
|
-
if (seen.has(testId)) {
|
|
237
|
-
continue; // Skip duplicates
|
|
238
|
-
}
|
|
239
|
-
seen.add(testId);
|
|
240
|
-
const testCase = this.loadTestCase(testId, dirPath);
|
|
241
|
-
if (testCase) {
|
|
242
|
-
tests.push(testCase);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
return tests.sort((a, b) => b.createdAt - a.createdAt);
|
|
247
|
-
}
|
|
248
|
-
/**
|
|
249
|
-
* List test cases in a specific directory
|
|
250
|
-
*/
|
|
251
|
-
listTestCasesInDirectory(dirPath) {
|
|
252
|
-
const tests = [];
|
|
253
|
-
try {
|
|
254
|
-
const items = (0, fs_1.readdirSync)(dirPath);
|
|
255
|
-
for (const item of items) {
|
|
256
|
-
if (item.endsWith('.json') && item !== 'info.json') {
|
|
257
|
-
try {
|
|
258
|
-
const content = (0, fs_1.readFileSync)((0, path_1.join)(dirPath, item), 'utf-8');
|
|
259
|
-
tests.push(JSON.parse(content));
|
|
260
|
-
}
|
|
261
|
-
catch {
|
|
262
|
-
// Skip invalid files
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
const itemPath = (0, path_1.join)(dirPath, item);
|
|
267
|
-
const stat = (0, fs_1.statSync)(itemPath);
|
|
268
|
-
if (stat.isDirectory()) {
|
|
269
|
-
tests.push(...this.listTestCasesInDirectory(itemPath));
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
catch {
|
|
275
|
-
// Return empty array if unable to read
|
|
276
|
-
}
|
|
277
|
-
return tests.sort((a, b) => b.createdAt - a.createdAt);
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Delete a test case and its associated data
|
|
281
|
-
*/
|
|
282
|
-
deleteTestCase(testId) {
|
|
283
|
-
const filePath = this.findTestCaseFile(testId, this.getBaseDir());
|
|
284
|
-
if (filePath) {
|
|
285
|
-
(0, fs_1.rmSync)(filePath);
|
|
286
|
-
}
|
|
287
|
-
this.deleteTestSteps(testId);
|
|
288
|
-
this.deleteTestScript(testId);
|
|
289
|
-
}
|
|
290
|
-
/**
|
|
291
|
-
* Save test case steps
|
|
292
|
-
*/
|
|
293
|
-
saveTestSteps(testId, steps) {
|
|
294
|
-
// Ensure steps directory exists
|
|
295
|
-
this.ensureStepsDir();
|
|
296
|
-
// Reset any running steps
|
|
297
|
-
let runningFound = false;
|
|
298
|
-
steps.forEach(step => {
|
|
299
|
-
if (runningFound || step.status === 'running') {
|
|
300
|
-
runningFound = true;
|
|
301
|
-
step.status = undefined;
|
|
302
|
-
step.error = undefined;
|
|
303
|
-
}
|
|
304
|
-
});
|
|
305
|
-
const stepsFile = this.getStepsFilePath(testId);
|
|
306
|
-
(0, fs_1.writeFileSync)(stepsFile, JSON.stringify(steps, null, 2), 'utf-8');
|
|
307
|
-
}
|
|
308
|
-
/**
|
|
309
|
-
* Load test case steps
|
|
310
|
-
*/
|
|
311
|
-
loadTestSteps(testId) {
|
|
312
|
-
const stepsFile = this.getStepsFilePath(testId);
|
|
313
|
-
if (!(0, fs_1.existsSync)(stepsFile)) {
|
|
314
|
-
return [];
|
|
315
|
-
}
|
|
316
|
-
const content = (0, fs_1.readFileSync)(stepsFile, 'utf-8');
|
|
317
|
-
return JSON.parse(content);
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Delete all steps for a test case
|
|
321
|
-
*/
|
|
322
|
-
deleteTestSteps(testId) {
|
|
323
|
-
const stepsFile = this.getStepsFilePath(testId);
|
|
324
|
-
if ((0, fs_1.existsSync)(stepsFile)) {
|
|
325
|
-
(0, fs_1.rmSync)(stepsFile);
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
updateStepBreakPoint(testId, id, isBreakpoint) {
|
|
329
|
-
const steps = this.loadTestSteps(testId);
|
|
330
|
-
const step = steps.find(s => s.id === id);
|
|
331
|
-
if (step) {
|
|
332
|
-
step.isBreakpoint = isBreakpoint;
|
|
333
|
-
}
|
|
334
|
-
this.saveTestSteps(testId, steps);
|
|
335
|
-
}
|
|
336
|
-
/**
|
|
337
|
-
* Save a single test step or insert a new one
|
|
338
|
-
* @returns true if updated, false if created
|
|
339
|
-
*/
|
|
340
|
-
saveTestStep(testId, step, afterStepId) {
|
|
341
|
-
const testCase = this.loadTestCase(testId);
|
|
342
|
-
if (!testCase) {
|
|
343
|
-
throw new Error(`Test case ${testId} not found`);
|
|
344
|
-
}
|
|
345
|
-
testCase.status = 'draft';
|
|
346
|
-
let updated = false;
|
|
347
|
-
let insertIndex = 0;
|
|
348
|
-
const dbStep = testCase.steps.find(s => s.id === step.id);
|
|
349
|
-
if (!dbStep) {
|
|
350
|
-
if (afterStepId) {
|
|
351
|
-
insertIndex = testCase.steps.findIndex(s => s.id === afterStepId);
|
|
352
|
-
if (insertIndex !== -1) {
|
|
353
|
-
insertIndex += 1;
|
|
354
|
-
}
|
|
355
|
-
else {
|
|
356
|
-
insertIndex = testCase.steps.length;
|
|
357
|
-
}
|
|
358
|
-
testCase.steps.splice(insertIndex, 0, step);
|
|
359
|
-
}
|
|
360
|
-
else {
|
|
361
|
-
testCase.steps.push(step);
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
if (dbStep) {
|
|
365
|
-
if (step.description) {
|
|
366
|
-
dbStep.description = step.description;
|
|
367
|
-
}
|
|
368
|
-
dbStep.status = undefined;
|
|
369
|
-
dbStep.error = undefined;
|
|
370
|
-
updated = true;
|
|
371
|
-
}
|
|
372
|
-
this.saveTestSteps(testId, testCase.steps);
|
|
373
|
-
return updated;
|
|
374
|
-
}
|
|
375
|
-
/**
|
|
376
|
-
* Insert a new step after a specific step
|
|
377
|
-
*/
|
|
378
|
-
insertStep(testId, afterStepId, newStep) {
|
|
379
|
-
const testCase = this.loadTestCase(testId);
|
|
380
|
-
if (!testCase) {
|
|
381
|
-
throw new Error(`Test case ${testId} not found`);
|
|
382
|
-
}
|
|
383
|
-
testCase.status = 'draft';
|
|
384
|
-
let insertIndex = 0;
|
|
385
|
-
if (afterStepId) {
|
|
386
|
-
insertIndex = testCase.steps.findIndex(s => s.id === afterStepId);
|
|
387
|
-
if (insertIndex !== -1) {
|
|
388
|
-
insertIndex += 1;
|
|
389
|
-
}
|
|
390
|
-
else {
|
|
391
|
-
insertIndex = testCase.steps.length;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
testCase.steps.splice(insertIndex, 0, newStep);
|
|
395
|
-
this.saveTestSteps(testId, testCase.steps);
|
|
396
|
-
}
|
|
397
|
-
/**
|
|
398
|
-
* Delete a specific step by ID
|
|
399
|
-
*/
|
|
400
|
-
deleteStep(testId, stepId) {
|
|
401
|
-
let steps = this.loadTestSteps(testId);
|
|
402
|
-
if (steps.length === 0) {
|
|
403
|
-
return false;
|
|
404
|
-
}
|
|
405
|
-
const index = steps.findIndex(s => s.id === stepId);
|
|
406
|
-
steps = [
|
|
407
|
-
...steps.slice(0, index),
|
|
408
|
-
...steps.slice(index + 1),
|
|
409
|
-
];
|
|
410
|
-
this.saveTestSteps(testId, steps);
|
|
411
|
-
const testCase = this.loadTestCase(testId);
|
|
412
|
-
if (testCase && testCase.status !== 'draft') {
|
|
413
|
-
testCase.status = 'draft';
|
|
414
|
-
this.saveTestCase(testCase);
|
|
415
|
-
}
|
|
416
|
-
return true;
|
|
417
|
-
}
|
|
418
|
-
/**
|
|
419
|
-
* Save Playwright script for a test case
|
|
420
|
-
*/
|
|
421
|
-
saveTestScript(testId, script) {
|
|
422
|
-
// Ensure scripts directory exists
|
|
423
|
-
this.ensureScriptsDir();
|
|
424
|
-
const scriptPath = this.getScriptFilePath(testId);
|
|
425
|
-
(0, fs_1.writeFileSync)(scriptPath, script, 'utf-8');
|
|
426
|
-
}
|
|
427
|
-
/**
|
|
428
|
-
* Load Playwright script for a test case
|
|
429
|
-
*/
|
|
430
|
-
loadTestScript(testId) {
|
|
431
|
-
const scriptPath = this.getScriptFilePath(testId);
|
|
432
|
-
if (!(0, fs_1.existsSync)(scriptPath)) {
|
|
433
|
-
return undefined;
|
|
434
|
-
}
|
|
435
|
-
return (0, fs_1.readFileSync)(scriptPath, 'utf-8');
|
|
436
|
-
}
|
|
437
|
-
hasTestScript(testId) {
|
|
438
|
-
return (0, fs_1.existsSync)(this.getScriptFilePath(testId));
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Delete Playwright script for a test case
|
|
442
|
-
*/
|
|
443
|
-
deleteTestScript(testId) {
|
|
444
|
-
const scriptPath = this.getScriptFilePath(testId);
|
|
445
|
-
if ((0, fs_1.existsSync)(scriptPath)) {
|
|
446
|
-
(0, fs_1.rmSync)(scriptPath);
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
/**
|
|
450
|
-
* Get the file path for a test step file
|
|
451
|
-
*/
|
|
452
|
-
getStepsFilePath(testId) {
|
|
453
|
-
return (0, path_1.join)(this.getStepsDir(), `${testId}.json`);
|
|
454
|
-
}
|
|
455
|
-
/**
|
|
456
|
-
* Get the file path for a test script file
|
|
457
|
-
*/
|
|
458
|
-
getScriptFilePath(testId) {
|
|
459
|
-
return (0, path_1.join)(this.getScriptsDir(), `${testId}.ts`);
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
exports.TestCaseRepository = TestCaseRepository;
|
|
463
|
-
//# sourceMappingURL=TestCaseRepository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestCaseRepository.js","sourceRoot":"","sources":["../../../../../core-infra/src/repositories/TestCaseRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { BaseRepository } from './BaseRepository';
|
|
2
|
-
import { TestPlan } from '../types';
|
|
3
|
-
/**
|
|
4
|
-
* TestPlanRepository handles all storage operations for test plans
|
|
5
|
-
* Responsible for managing test plan data
|
|
6
|
-
* Data stored in: ~/.test_agent/projects/{projectId}/test_plans/
|
|
7
|
-
*/
|
|
8
|
-
export declare class TestPlanRepository extends BaseRepository {
|
|
9
|
-
constructor(projectId: string);
|
|
10
|
-
/**
|
|
11
|
-
* Save a test plan
|
|
12
|
-
*/
|
|
13
|
-
saveTestPlan(testPlan: TestPlan): void;
|
|
14
|
-
/**
|
|
15
|
-
* Load a test plan by ID
|
|
16
|
-
*/
|
|
17
|
-
loadTestPlan(testPlanId: string): TestPlan | null;
|
|
18
|
-
/**
|
|
19
|
-
* List all test plans
|
|
20
|
-
*/
|
|
21
|
-
listTestPlans(): TestPlan[];
|
|
22
|
-
/**
|
|
23
|
-
* Update a test plan
|
|
24
|
-
*/
|
|
25
|
-
updateTestPlan(testPlan: TestPlan): void;
|
|
26
|
-
/**
|
|
27
|
-
* Delete a test plan
|
|
28
|
-
*/
|
|
29
|
-
deleteTestPlan(testPlanId: string): void;
|
|
30
|
-
/**
|
|
31
|
-
* Check if a test plan exists
|
|
32
|
-
*/
|
|
33
|
-
exists(testPlanId: string): boolean;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=TestPlanRepository.d.ts.map
|