@syn7xx/testops-mcp-server 0.1.0
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 +177 -0
- package/dist/args.d.ts +10 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +26 -0
- package/dist/args.js.map +1 -0
- package/dist/domain/index.d.ts +4 -0
- package/dist/domain/index.d.ts.map +1 -0
- package/dist/domain/index.js +4 -0
- package/dist/domain/index.js.map +1 -0
- package/dist/domain/project/index.d.ts +3 -0
- package/dist/domain/project/index.d.ts.map +1 -0
- package/dist/domain/project/index.js +3 -0
- package/dist/domain/project/index.js.map +1 -0
- package/dist/domain/project/service.d.ts +23 -0
- package/dist/domain/project/service.d.ts.map +1 -0
- package/dist/domain/project/service.js +51 -0
- package/dist/domain/project/service.js.map +1 -0
- package/dist/domain/project/types.d.ts +12 -0
- package/dist/domain/project/types.d.ts.map +1 -0
- package/dist/domain/project/types.js +5 -0
- package/dist/domain/project/types.js.map +1 -0
- package/dist/domain/test-case/index.d.ts +3 -0
- package/dist/domain/test-case/index.d.ts.map +1 -0
- package/dist/domain/test-case/index.js +3 -0
- package/dist/domain/test-case/index.js.map +1 -0
- package/dist/domain/test-case/service.d.ts +69 -0
- package/dist/domain/test-case/service.d.ts.map +1 -0
- package/dist/domain/test-case/service.js +141 -0
- package/dist/domain/test-case/service.js.map +1 -0
- package/dist/domain/test-case/types.d.ts +51 -0
- package/dist/domain/test-case/types.d.ts.map +1 -0
- package/dist/domain/test-case/types.js +5 -0
- package/dist/domain/test-case/types.js.map +1 -0
- package/dist/domain/test-plan/index.d.ts +3 -0
- package/dist/domain/test-plan/index.d.ts.map +1 -0
- package/dist/domain/test-plan/index.js +3 -0
- package/dist/domain/test-plan/index.js.map +1 -0
- package/dist/domain/test-plan/service.d.ts +33 -0
- package/dist/domain/test-plan/service.d.ts.map +1 -0
- package/dist/domain/test-plan/service.js +40 -0
- package/dist/domain/test-plan/service.js.map +1 -0
- package/dist/domain/test-plan/types.d.ts +18 -0
- package/dist/domain/test-plan/types.d.ts.map +1 -0
- package/dist/domain/test-plan/types.js +5 -0
- package/dist/domain/test-plan/types.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/presentation/index.d.ts +4 -0
- package/dist/presentation/index.d.ts.map +1 -0
- package/dist/presentation/index.js +4 -0
- package/dist/presentation/index.js.map +1 -0
- package/dist/presentation/project/tools.d.ts +2 -0
- package/dist/presentation/project/tools.d.ts.map +1 -0
- package/dist/presentation/project/tools.js +61 -0
- package/dist/presentation/project/tools.js.map +1 -0
- package/dist/presentation/test-case/tools.d.ts +2 -0
- package/dist/presentation/test-case/tools.d.ts.map +1 -0
- package/dist/presentation/test-case/tools.js +139 -0
- package/dist/presentation/test-case/tools.js.map +1 -0
- package/dist/presentation/test-plan/tools.d.ts +2 -0
- package/dist/presentation/test-plan/tools.d.ts.map +1 -0
- package/dist/presentation/test-plan/tools.js +46 -0
- package/dist/presentation/test-plan/tools.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +32 -0
- package/dist/server.js.map +1 -0
- package/dist/services/config.d.ts +43 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +99 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/index.d.ts +8 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +8 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/project.d.ts +17 -0
- package/dist/services/project.d.ts.map +1 -0
- package/dist/services/project.js +27 -0
- package/dist/services/project.js.map +1 -0
- package/dist/services/test-case.d.ts +59 -0
- package/dist/services/test-case.d.ts.map +1 -0
- package/dist/services/test-case.js +138 -0
- package/dist/services/test-case.js.map +1 -0
- package/dist/services/test-plan.d.ts +20 -0
- package/dist/services/test-plan.d.ts.map +1 -0
- package/dist/services/test-plan.js +18 -0
- package/dist/services/test-plan.js.map +1 -0
- package/dist/services/testops-client.d.ts +96 -0
- package/dist/services/testops-client.d.ts.map +1 -0
- package/dist/services/testops-client.js +392 -0
- package/dist/services/testops-client.js.map +1 -0
- package/dist/services/testops-types.d.ts +62 -0
- package/dist/services/testops-types.d.ts.map +1 -0
- package/dist/services/testops-types.js +3 -0
- package/dist/services/testops-types.js.map +1 -0
- package/dist/shared/api.d.ts +39 -0
- package/dist/shared/api.d.ts.map +1 -0
- package/dist/shared/api.js +94 -0
- package/dist/shared/api.js.map +1 -0
- package/dist/shared/index.d.ts +4 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +4 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/pagination.d.ts +37 -0
- package/dist/shared/pagination.d.ts.map +1 -0
- package/dist/shared/pagination.js +40 -0
- package/dist/shared/pagination.js.map +1 -0
- package/dist/shared/result.d.ts +39 -0
- package/dist/shared/result.d.ts.map +1 -0
- package/dist/shared/result.js +34 -0
- package/dist/shared/result.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/project.d.ts +5 -0
- package/dist/tools/project.d.ts.map +1 -0
- package/dist/tools/project.js +62 -0
- package/dist/tools/project.js.map +1 -0
- package/dist/tools/test-case.d.ts +5 -0
- package/dist/tools/test-case.d.ts.map +1 -0
- package/dist/tools/test-case.js +185 -0
- package/dist/tools/test-case.js.map +1 -0
- package/dist/tools/test-plan.d.ts +5 -0
- package/dist/tools/test-plan.d.ts.map +1 -0
- package/dist/tools/test-plan.js +57 -0
- package/dist/tools/test-plan.js.map +1 -0
- package/dist/tools/testops.d.ts +6 -0
- package/dist/tools/testops.d.ts.map +1 -0
- package/dist/tools/testops.js +302 -0
- package/dist/tools/testops.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-case/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IAC/B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC5C,IAAI,EAAE;QACF,QAAQ,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACL;AAED,MAAM,WAAW,qBAAqB;IAClC,WAAW,EAAE;QACT,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACN;AAED,MAAM,WAAW,oBAAoB;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/domain/test-case/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/test-plan/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Result } from '../../shared/result.js';
|
|
2
|
+
import { PageParams, type Paginated } from '../../shared/pagination.js';
|
|
3
|
+
import type { TestPlan, TestPlanTestCase } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Get a test plan by ID
|
|
6
|
+
* @param id - Test plan ID
|
|
7
|
+
* @returns Test plan details
|
|
8
|
+
*/
|
|
9
|
+
export declare const getTestPlan: (id: number) => Promise<Result<TestPlan, Error>>;
|
|
10
|
+
/**
|
|
11
|
+
* Get test cases from a test plan
|
|
12
|
+
* @param testPlanId - Test plan ID
|
|
13
|
+
* @param params - Pagination parameters
|
|
14
|
+
* @returns Paginated list of test cases in the plan
|
|
15
|
+
*/
|
|
16
|
+
export declare const getTestPlanTestCases: (testPlanId: number, params?: PageParams) => Promise<Result<Paginated<TestPlanTestCase>, Error>>;
|
|
17
|
+
/**
|
|
18
|
+
* Get test plan execution statistics
|
|
19
|
+
* @param testPlanId - Test plan ID
|
|
20
|
+
* @returns Statistics (total, passed, failed counts)
|
|
21
|
+
*/
|
|
22
|
+
export declare const getTestPlanStat: (testPlanId: number) => Promise<Result<{
|
|
23
|
+
total: number;
|
|
24
|
+
passed: number;
|
|
25
|
+
failed: number;
|
|
26
|
+
}, Error>>;
|
|
27
|
+
/**
|
|
28
|
+
* Sync test plan (update test case list from source)
|
|
29
|
+
* @param testPlanId - Test plan ID
|
|
30
|
+
* @returns Updated test plan
|
|
31
|
+
*/
|
|
32
|
+
export declare const syncTestPlan: (testPlanId: number) => Promise<Result<TestPlan, Error>>;
|
|
33
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAO,MAAM,wBAAwB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAuB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAS7D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAU,IAAI,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAE7E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAC7B,YAAY,MAAM,EAClB,SAAS,UAAU,KACpB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAgBpD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GACxB,YAAY,MAAM,KACnB,OAAO,CAAC,MAAM,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,CAAC,CAE1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAU,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAEtF,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { apiGet } from '../../shared/api.js';
|
|
2
|
+
import { map } from '../../shared/result.js';
|
|
3
|
+
import { createPaginated } from '../../shared/pagination.js';
|
|
4
|
+
import { normalizePageParams } from '../../shared/pagination.js';
|
|
5
|
+
/**
|
|
6
|
+
* Get a test plan by ID
|
|
7
|
+
* @param id - Test plan ID
|
|
8
|
+
* @returns Test plan details
|
|
9
|
+
*/
|
|
10
|
+
export const getTestPlan = async (id) => {
|
|
11
|
+
return apiGet(`/api/testplan/${id}`);
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Get test cases from a test plan
|
|
15
|
+
* @param testPlanId - Test plan ID
|
|
16
|
+
* @param params - Pagination parameters
|
|
17
|
+
* @returns Paginated list of test cases in the plan
|
|
18
|
+
*/
|
|
19
|
+
export const getTestPlanTestCases = async (testPlanId, params) => {
|
|
20
|
+
const { page, size, sort } = normalizePageParams(params);
|
|
21
|
+
const response = await apiGet(`/api/testplan/${testPlanId}/tree/leaf`, { page, size, sort: sort ?? 'name,ASC' });
|
|
22
|
+
return map(response, (data) => createPaginated(data.content ?? [], data.number ?? page, data.size ?? size, data.totalElements));
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Get test plan execution statistics
|
|
26
|
+
* @param testPlanId - Test plan ID
|
|
27
|
+
* @returns Statistics (total, passed, failed counts)
|
|
28
|
+
*/
|
|
29
|
+
export const getTestPlanStat = async (testPlanId) => {
|
|
30
|
+
return apiGet(`/api/testplan/${testPlanId}/stat`);
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Sync test plan (update test case list from source)
|
|
34
|
+
* @param testPlanId - Test plan ID
|
|
35
|
+
* @returns Updated test plan
|
|
36
|
+
*/
|
|
37
|
+
export const syncTestPlan = async (testPlanId) => {
|
|
38
|
+
return apiGet(`/api/testplan/${testPlanId}/sync`);
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/domain/test-plan/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAU,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAc,mBAAmB,EAAkB,MAAM,4BAA4B,CAAC;AAU7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,EAAU,EAAoC,EAAE;IAC9E,OAAO,MAAM,CAAW,iBAAiB,EAAE,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACrC,UAAkB,EAClB,MAAmB,EACgC,EAAE;IACrD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,MAAM,MAAM,CACzB,iBAAiB,UAAU,YAAY,EACvC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,UAAU,EAAE,CAC3C,CAAC;IAEF,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAC1B,eAAe,CACX,IAAI,CAAC,OAAO,IAAI,EAAE,EAClB,IAAI,CAAC,MAAM,IAAI,IAAI,EACnB,IAAI,CAAC,IAAI,IAAI,IAAI,EACjB,IAAI,CAAC,aAAa,CACrB,CACJ,CAAC;AACN,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAChC,UAAkB,EACuD,EAAE;IAC3E,OAAO,MAAM,CAAC,iBAAiB,UAAU,OAAO,CAAC,CAAC;AACtD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,UAAkB,EAAoC,EAAE;IACvF,OAAO,MAAM,CAAW,iBAAiB,UAAU,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TestPlan Domain - Types
|
|
3
|
+
*/
|
|
4
|
+
export interface TestPlan {
|
|
5
|
+
id: number;
|
|
6
|
+
name: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
projectId: number;
|
|
9
|
+
}
|
|
10
|
+
export interface TestPlanTestCase {
|
|
11
|
+
id: number;
|
|
12
|
+
name: string;
|
|
13
|
+
}
|
|
14
|
+
export interface TestPlanLeaf {
|
|
15
|
+
id: number;
|
|
16
|
+
name?: string;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/domain/test-plan/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/domain/test-plan/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { parseTestOpsServerArgs } from './args.js';
|
|
2
|
+
import { initApiClient } from './shared/api.js';
|
|
3
|
+
import { startServer } from './server.js';
|
|
4
|
+
const { url, token } = parseTestOpsServerArgs(process.argv);
|
|
5
|
+
initApiClient(url, token);
|
|
6
|
+
startServer().catch((error) => {
|
|
7
|
+
console.error('Failed to start server:', error);
|
|
8
|
+
process.exit(1);
|
|
9
|
+
});
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5D,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAE1B,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC5B,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,oBAAoB,GAAI,QAAQ,GAAG,SA6E/C,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
import { isSuccess } from '../../shared/result.js';
|
|
3
|
+
import { findProjects, findProjectByName, getProjectById, } from '../../domain/project/index.js';
|
|
4
|
+
export const registerProjectTools = (server) => {
|
|
5
|
+
server.registerTool('project_list', {
|
|
6
|
+
title: 'List Projects',
|
|
7
|
+
description: 'List all projects with pagination',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
page: z.number().optional().describe('Page number (zero-based)'),
|
|
10
|
+
size: z.number().optional().describe('Page size (max 100)'),
|
|
11
|
+
sort: z.string().optional().describe('Sort (e.g., "name,ASC")'),
|
|
12
|
+
}),
|
|
13
|
+
}, async (args) => {
|
|
14
|
+
const result = await findProjects(args);
|
|
15
|
+
if (!isSuccess(result)) {
|
|
16
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
content: [{
|
|
20
|
+
type: 'text',
|
|
21
|
+
text: JSON.stringify({
|
|
22
|
+
items: result.value.items,
|
|
23
|
+
page: result.value.page,
|
|
24
|
+
size: result.value.size,
|
|
25
|
+
totalElements: result.value.totalElements,
|
|
26
|
+
hasNext: result.value.hasNext,
|
|
27
|
+
}, null, 2),
|
|
28
|
+
}],
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
server.registerTool('project_find_by_name', {
|
|
32
|
+
title: 'Find Project by Name',
|
|
33
|
+
description: 'Find a project by exact or partial name match',
|
|
34
|
+
inputSchema: z.object({
|
|
35
|
+
name: z.string().describe('Project name to search'),
|
|
36
|
+
}),
|
|
37
|
+
}, async (args) => {
|
|
38
|
+
const result = await findProjectByName(args.name);
|
|
39
|
+
if (!isSuccess(result)) {
|
|
40
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
41
|
+
}
|
|
42
|
+
if (!result.value) {
|
|
43
|
+
return { content: [{ type: 'text', text: `Project "${args.name}" not found` }], isError: true };
|
|
44
|
+
}
|
|
45
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
46
|
+
});
|
|
47
|
+
server.registerTool('project_get_by_id', {
|
|
48
|
+
title: 'Get Project by ID',
|
|
49
|
+
description: 'Get a project by its ID',
|
|
50
|
+
inputSchema: z.object({
|
|
51
|
+
id: z.number().describe('Project ID'),
|
|
52
|
+
}),
|
|
53
|
+
}, async (args) => {
|
|
54
|
+
const result = await getProjectById(args.id);
|
|
55
|
+
if (!isSuccess(result)) {
|
|
56
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
57
|
+
}
|
|
58
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/project/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/test-case/tools.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,qBAAqB,GAAI,QAAQ,GAAG,SA6KhD,CAAC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
import { isSuccess } from '../../shared/result.js';
|
|
3
|
+
import { getTestCase, getTestCaseDetail, getTestCaseScenario, updateScenarioStep, setTestCaseScenario, getTestCaseCustomFields, updateTestCaseCustomFields, searchTestCasesByAQL, } from '../../domain/test-case/index.js';
|
|
4
|
+
export const registerTestCaseTools = (server) => {
|
|
5
|
+
server.registerTool('testcase_get', {
|
|
6
|
+
title: 'Get Test Case',
|
|
7
|
+
description: 'Get a test case by ID',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
id: z.number().describe('Test case ID'),
|
|
10
|
+
}),
|
|
11
|
+
}, async (args) => {
|
|
12
|
+
const result = await getTestCase(args.id);
|
|
13
|
+
if (!isSuccess(result)) {
|
|
14
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
15
|
+
}
|
|
16
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
17
|
+
});
|
|
18
|
+
server.registerTool('testcase_get_detail', {
|
|
19
|
+
title: 'Get Test Case Detail',
|
|
20
|
+
description: 'Get test case with steps and custom fields',
|
|
21
|
+
inputSchema: z.object({
|
|
22
|
+
id: z.number().describe('Test case ID'),
|
|
23
|
+
}),
|
|
24
|
+
}, async (args) => {
|
|
25
|
+
const result = await getTestCaseDetail(args.id);
|
|
26
|
+
if (!isSuccess(result)) {
|
|
27
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
28
|
+
}
|
|
29
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
30
|
+
});
|
|
31
|
+
server.registerTool('testcase_get_scenario', {
|
|
32
|
+
title: 'Get Test Case Scenario',
|
|
33
|
+
description: 'Get scenario (steps and expected results) for a test case',
|
|
34
|
+
inputSchema: z.object({
|
|
35
|
+
id: z.number().describe('Test case ID'),
|
|
36
|
+
}),
|
|
37
|
+
}, async (args) => {
|
|
38
|
+
const result = await getTestCaseScenario(args.id);
|
|
39
|
+
if (!isSuccess(result)) {
|
|
40
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
41
|
+
}
|
|
42
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
43
|
+
});
|
|
44
|
+
server.registerTool('testcase_update_step', {
|
|
45
|
+
title: 'Update Scenario Step',
|
|
46
|
+
description: 'Update a step in a test case scenario',
|
|
47
|
+
inputSchema: z.object({
|
|
48
|
+
testCaseId: z.number().describe('Test case ID'),
|
|
49
|
+
stepId: z.number().describe('Step ID to update'),
|
|
50
|
+
body: z.string().optional().describe('New step action'),
|
|
51
|
+
expectedResult: z.string().optional().describe('New expected result'),
|
|
52
|
+
}),
|
|
53
|
+
}, async (args) => {
|
|
54
|
+
const result = await updateScenarioStep(args.testCaseId, args.stepId, {
|
|
55
|
+
body: args.body,
|
|
56
|
+
expectedResult: args.expectedResult,
|
|
57
|
+
});
|
|
58
|
+
if (!isSuccess(result)) {
|
|
59
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
60
|
+
}
|
|
61
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
62
|
+
});
|
|
63
|
+
server.registerTool('testcase_set_scenario', {
|
|
64
|
+
title: 'Set Test Case Scenario',
|
|
65
|
+
description: 'Replace all steps in a test case scenario',
|
|
66
|
+
inputSchema: z.object({
|
|
67
|
+
id: z.number().describe('Test case ID'),
|
|
68
|
+
steps: z.array(z.object({
|
|
69
|
+
action: z.string().describe('Step action'),
|
|
70
|
+
expectedResult: z.string().optional().describe('Expected result'),
|
|
71
|
+
})).describe('Steps to set'),
|
|
72
|
+
}),
|
|
73
|
+
}, async (args) => {
|
|
74
|
+
const result = await setTestCaseScenario(args.id, args.steps);
|
|
75
|
+
if (!isSuccess(result)) {
|
|
76
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
77
|
+
}
|
|
78
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
79
|
+
});
|
|
80
|
+
server.registerTool('testcase_get_custom_fields', {
|
|
81
|
+
title: 'Get Test Case Custom Fields',
|
|
82
|
+
description: 'Get custom field values for a test case',
|
|
83
|
+
inputSchema: z.object({
|
|
84
|
+
id: z.number().describe('Test case ID'),
|
|
85
|
+
}),
|
|
86
|
+
}, async (args) => {
|
|
87
|
+
const result = await getTestCaseCustomFields(args.id);
|
|
88
|
+
if (!isSuccess(result)) {
|
|
89
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
90
|
+
}
|
|
91
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
92
|
+
});
|
|
93
|
+
server.registerTool('testcase_update_custom_fields', {
|
|
94
|
+
title: 'Update Test Case Custom Fields',
|
|
95
|
+
description: 'Update custom field values for a test case',
|
|
96
|
+
inputSchema: z.object({
|
|
97
|
+
id: z.number().describe('Test case ID'),
|
|
98
|
+
fields: z.array(z.object({
|
|
99
|
+
customFieldId: z.number().describe('Custom field ID'),
|
|
100
|
+
valueIds: z.array(z.number()).describe('Value IDs to set'),
|
|
101
|
+
})).describe('Custom fields to update'),
|
|
102
|
+
}),
|
|
103
|
+
}, async (args) => {
|
|
104
|
+
const result = await updateTestCaseCustomFields(args.id, args.fields);
|
|
105
|
+
if (!isSuccess(result)) {
|
|
106
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
107
|
+
}
|
|
108
|
+
return { content: [{ type: 'text', text: 'Custom fields updated successfully' }] };
|
|
109
|
+
});
|
|
110
|
+
server.registerTool('testcase_search_by_aql', {
|
|
111
|
+
title: 'Search Test Cases by AQL',
|
|
112
|
+
description: 'Search test cases using AQL query',
|
|
113
|
+
inputSchema: z.object({
|
|
114
|
+
projectId: z.number().describe('Project ID'),
|
|
115
|
+
rql: z.string().describe('AQL query'),
|
|
116
|
+
deleted: z.boolean().optional().describe('Include deleted'),
|
|
117
|
+
page: z.number().optional().describe('Page number'),
|
|
118
|
+
size: z.number().optional().describe('Page size'),
|
|
119
|
+
sort: z.string().optional().describe('Sort criteria'),
|
|
120
|
+
}),
|
|
121
|
+
}, async (args) => {
|
|
122
|
+
const result = await searchTestCasesByAQL(args.projectId, args.rql, args);
|
|
123
|
+
if (!isSuccess(result)) {
|
|
124
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
content: [{
|
|
128
|
+
type: 'text',
|
|
129
|
+
text: JSON.stringify({
|
|
130
|
+
testCases: result.value.testCases,
|
|
131
|
+
total: result.value.total,
|
|
132
|
+
page: result.value.page,
|
|
133
|
+
size: result.value.size,
|
|
134
|
+
}, null, 2),
|
|
135
|
+
}],
|
|
136
|
+
};
|
|
137
|
+
});
|
|
138
|
+
};
|
|
139
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/test-case/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACH,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,oBAAoB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAW,EAAE,EAAE;IACjD,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACI,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC1C,CAAC;KACL,EACD,KAAK,EAAE,IAAoB,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,qBAAqB,EACrB;QACI,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC1C,CAAC;KACL,EACD,KAAK,EAAE,IAAoB,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,uBAAuB,EACvB;QACI,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC1C,CAAC;KACL,EACD,KAAK,EAAE,IAAoB,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,sBAAsB,EACtB;QACI,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,uCAAuC;QACpD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAChD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACvD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SACxE,CAAC;KACL,EACD,KAAK,EAAE,IAAoF,EAAE,EAAE;QAC3F,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE;YAClE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;SACtC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,uBAAuB,EACvB;QACI,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,2CAA2C;QACxD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;aACpE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC/B,CAAC;KACL,EACD,KAAK,EAAE,IAA+E,EAAE,EAAE;QACtF,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,4BAA4B,EAC5B;QACI,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC1C,CAAC;KACL,EACD,KAAK,EAAE,IAAoB,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,+BAA+B,EAC/B;QACI,KAAK,EAAE,gCAAgC;QACvC,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACrB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;gBACrD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;aAC7D,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAC1C,CAAC;KACL,EACD,KAAK,EAAE,IAAkF,EAAE,EAAE;QACzF,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,wBAAwB,EACxB;QACI,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;YAC5C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACrC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;YACnD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;YACjD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;SACxD,CAAC;KACL,EACD,KAAK,EAAE,IAAwG,EAAE,EAAE;QAC/G,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QACD,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS;wBACjC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;wBACzB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;wBACvB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;qBAC1B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC,CACJ,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/presentation/test-plan/tools.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,qBAAqB,GAAI,QAAQ,GAAG,SAsDhD,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
import { isSuccess } from '../../shared/result.js';
|
|
3
|
+
import { getTestPlan, getTestPlanTestCases, } from '../../domain/test-plan/index.js';
|
|
4
|
+
export const registerTestPlanTools = (server) => {
|
|
5
|
+
server.registerTool('testplan_get', {
|
|
6
|
+
title: 'Get Test Plan',
|
|
7
|
+
description: 'Get a test plan by ID',
|
|
8
|
+
inputSchema: z.object({
|
|
9
|
+
id: z.number().describe('Test plan ID'),
|
|
10
|
+
}),
|
|
11
|
+
}, async (args) => {
|
|
12
|
+
const result = await getTestPlan(args.id);
|
|
13
|
+
if (!isSuccess(result)) {
|
|
14
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
15
|
+
}
|
|
16
|
+
return { content: [{ type: 'text', text: JSON.stringify(result.value, null, 2) }] };
|
|
17
|
+
});
|
|
18
|
+
server.registerTool('testplan_get_test_cases', {
|
|
19
|
+
title: 'Get Test Plan Test Cases',
|
|
20
|
+
description: 'Get test cases from a test plan with pagination',
|
|
21
|
+
inputSchema: z.object({
|
|
22
|
+
id: z.number().describe('Test plan ID'),
|
|
23
|
+
page: z.number().optional().describe('Page number (zero-based)'),
|
|
24
|
+
size: z.number().optional().describe('Page size (max 100)'),
|
|
25
|
+
sort: z.string().optional().describe('Sort (e.g., "name,ASC")'),
|
|
26
|
+
}),
|
|
27
|
+
}, async (args) => {
|
|
28
|
+
const result = await getTestPlanTestCases(args.id, args);
|
|
29
|
+
if (!isSuccess(result)) {
|
|
30
|
+
return { content: [{ type: 'text', text: `Error: ${result.error.message}` }], isError: true };
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
content: [{
|
|
34
|
+
type: 'text',
|
|
35
|
+
text: JSON.stringify({
|
|
36
|
+
items: result.value.items,
|
|
37
|
+
page: result.value.page,
|
|
38
|
+
size: result.value.size,
|
|
39
|
+
totalElements: result.value.totalElements,
|
|
40
|
+
hasNext: result.value.hasNext,
|
|
41
|
+
}, null, 2),
|
|
42
|
+
}],
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/presentation/test-plan/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EACH,WAAW,EACX,oBAAoB,GACvB,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAW,EAAE,EAAE;IACjD,MAAM,CAAC,YAAY,CACf,cAAc,EACd;QACI,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SAC1C,CAAC;KACL,EACD,KAAK,EAAE,IAAoB,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACxF,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACf,yBAAyB,EACzB;QACI,KAAK,EAAE,0BAA0B;QACjC,WAAW,EAAE,iDAAiD;QAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;YAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;SAClE,CAAC;KACL,EACD,KAAK,EAAE,IAAiE,EAAE,EAAE;QACxE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QAED,OAAO;YACH,OAAO,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACjB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK;wBACzB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;wBACvB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI;wBACvB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa;wBACzC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;qBAChC,EAAE,IAAI,EAAE,CAAC,CAAC;iBACd,CAAC;SACL,CAAC;IACN,CAAC,CACJ,CAAC;AACN,CAAC,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAwB,MAAM,8BAA8B,CAAC;AAQ/E,wBAAsB,mBAAmB,uBA+BxC;AAED,wBAAsB,WAAW,kBAKhC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { McpServer, StdioServerTransport } from '@modelcontextprotocol/server';
|
|
2
|
+
import * as z from 'zod';
|
|
3
|
+
import { registerProjectTools, registerTestPlanTools, registerTestCaseTools, } from './presentation/index.js';
|
|
4
|
+
export async function createTestOpsServer() {
|
|
5
|
+
const server = new McpServer({
|
|
6
|
+
name: 'testops-mcp-server',
|
|
7
|
+
version: '0.1.0'
|
|
8
|
+
}, {
|
|
9
|
+
capabilities: {
|
|
10
|
+
resources: {},
|
|
11
|
+
tools: {}
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
registerProjectTools(server);
|
|
15
|
+
registerTestPlanTools(server);
|
|
16
|
+
registerTestCaseTools(server);
|
|
17
|
+
server.registerTool('ping', {
|
|
18
|
+
title: 'Ping',
|
|
19
|
+
description: 'Test tool to verify server connectivity',
|
|
20
|
+
inputSchema: z.object({})
|
|
21
|
+
}, async () => ({
|
|
22
|
+
content: [{ type: 'text', text: 'Pong! Server is running.' }]
|
|
23
|
+
}));
|
|
24
|
+
return server;
|
|
25
|
+
}
|
|
26
|
+
export async function startServer() {
|
|
27
|
+
const server = await createTestOpsServer();
|
|
28
|
+
const transport = new StdioServerTransport();
|
|
29
|
+
await server.connect(transport);
|
|
30
|
+
console.error('TestOps MCP Server running on stdio');
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,oBAAoB;QAC1B,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9B,MAAM,CAAC,YAAY,CACjB,MAAM,EACN;QACE,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1B,EACD,KAAK,IAAI,EAAE,CAAC,CAAC;QACX,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;KAC9D,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TestOps Client Configuration
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Sets the TestOps base URL and API token (from MCP process args).
|
|
6
|
+
*/
|
|
7
|
+
export declare function configureTestOpsClient(options: {
|
|
8
|
+
baseUrl: string;
|
|
9
|
+
token: string;
|
|
10
|
+
}): void;
|
|
11
|
+
export declare function requireClientConfig(): {
|
|
12
|
+
baseUrl: string;
|
|
13
|
+
token: string;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Clears cached JWT (useful for re-authentication).
|
|
17
|
+
*/
|
|
18
|
+
export declare function clearJwtToken(): void;
|
|
19
|
+
/**
|
|
20
|
+
* Exchanges the API token for a JWT used on subsequent requests.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getJwtToken(): Promise<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Simplified HTTP client wrapper around fetch.
|
|
25
|
+
*/
|
|
26
|
+
export declare function testopsFetch<T = any>(endpoint: string, options?: {
|
|
27
|
+
method?: 'GET' | 'POST' | 'PATCH' | 'DELETE';
|
|
28
|
+
queryParams?: Record<string, string | number | boolean | undefined>;
|
|
29
|
+
body?: any;
|
|
30
|
+
}): Promise<T>;
|
|
31
|
+
/**
|
|
32
|
+
* GET request helper.
|
|
33
|
+
*/
|
|
34
|
+
export declare function testopsGet<T = any>(endpoint: string, queryParams?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
35
|
+
/**
|
|
36
|
+
* POST request helper.
|
|
37
|
+
*/
|
|
38
|
+
export declare function testopsPost<T = any>(endpoint: string, body?: any, queryParams?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
39
|
+
/**
|
|
40
|
+
* PATCH request helper.
|
|
41
|
+
*/
|
|
42
|
+
export declare function testopsPatch<T = any>(endpoint: string, body?: any, queryParams?: Record<string, string | number | boolean | undefined>): Promise<T>;
|
|
43
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/services/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF;AAED,wBAAgB,mBAAmB,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAOxE;AAID;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CA2BnD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACL,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IACpE,IAAI,CAAC,EAAE,GAAG,CAAC;CACT,GACP,OAAO,CAAC,CAAC,CAAC,CA4BZ;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,GAAG,EACpC,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,GAAG,EACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,GAAG,GAAG,EACtC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACpE,OAAO,CAAC,CAAC,CAAC,CAEZ"}
|