@bun913/mcp-testrail 0.16.0 → 0.17.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/dist/client/api/plans.d.ts +25 -2
- package/dist/client/api/plans.js +87 -0
- package/dist/client/api/plans.js.map +1 -1
- package/dist/server/api/plans.js +87 -1
- package/dist/server/api/plans.js.map +1 -1
- package/dist/shared/schemas/plans.d.ts +255 -0
- package/dist/shared/schemas/plans.js +56 -0
- package/dist/shared/schemas/plans.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BaseTestRailClient } from "./baseClient.js";
|
|
2
|
-
import { TestRailPlan } from "../../shared/schemas/plans.js";
|
|
3
|
-
import {
|
|
2
|
+
import { TestRailPlan, TestRailPlanEntry } from "../../shared/schemas/plans.js";
|
|
3
|
+
import { TestRailRun } from "../../shared/schemas/runs.js";
|
|
4
|
+
import { GetPlansInputType, AddPlanInputType, AddPlanEntryInputType, AddRunToPlanEntryInputType } from "../../shared/schemas/plans.js";
|
|
4
5
|
export declare class PlansClient extends BaseTestRailClient {
|
|
5
6
|
/**
|
|
6
7
|
* Gets all test plans for a project
|
|
@@ -9,4 +10,26 @@ export declare class PlansClient extends BaseTestRailClient {
|
|
|
9
10
|
* @returns Promise with array of test plans
|
|
10
11
|
*/
|
|
11
12
|
getPlans(projectId: GetPlansInputType["projectId"], filters?: Record<string, string | number | boolean | null | undefined>): Promise<TestRailPlan[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a new test plan
|
|
15
|
+
* @param projectId The ID of the project
|
|
16
|
+
* @param data Test plan data
|
|
17
|
+
* @returns Promise with created test plan
|
|
18
|
+
*/
|
|
19
|
+
addPlan(projectId: AddPlanInputType["projectId"], data: Omit<AddPlanInputType, "projectId">): Promise<TestRailPlan>;
|
|
20
|
+
/**
|
|
21
|
+
* Adds a test plan entry
|
|
22
|
+
* @param planId The ID of the test plan
|
|
23
|
+
* @param data Plan entry data
|
|
24
|
+
* @returns Promise with created plan entry
|
|
25
|
+
*/
|
|
26
|
+
addPlanEntry(planId: AddPlanEntryInputType["planId"], data: Omit<AddPlanEntryInputType, "planId">): Promise<TestRailPlanEntry>;
|
|
27
|
+
/**
|
|
28
|
+
* Adds a test run to a plan entry
|
|
29
|
+
* @param planId The ID of the test plan
|
|
30
|
+
* @param entryId The ID of the plan entry
|
|
31
|
+
* @param data Run data
|
|
32
|
+
* @returns Promise with created test run
|
|
33
|
+
*/
|
|
34
|
+
addRunToPlanEntry(planId: AddRunToPlanEntryInputType["planId"], entryId: AddRunToPlanEntryInputType["entryId"], data: Omit<AddRunToPlanEntryInputType, "planId" | "entryId">): Promise<TestRailRun>;
|
|
12
35
|
}
|
package/dist/client/api/plans.js
CHANGED
|
@@ -16,5 +16,92 @@ export class PlansClient extends BaseTestRailClient {
|
|
|
16
16
|
throw handleApiError(error, `Failed to get test plans for project ${projectId}`);
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new test plan
|
|
21
|
+
* @param projectId The ID of the project
|
|
22
|
+
* @param data Test plan data
|
|
23
|
+
* @returns Promise with created test plan
|
|
24
|
+
*/
|
|
25
|
+
async addPlan(projectId, data) {
|
|
26
|
+
try {
|
|
27
|
+
const payload = {
|
|
28
|
+
name: data.name,
|
|
29
|
+
};
|
|
30
|
+
if (data.description)
|
|
31
|
+
payload.description = data.description;
|
|
32
|
+
if (data.milestoneId)
|
|
33
|
+
payload.milestone_id = data.milestoneId;
|
|
34
|
+
if (data.entries)
|
|
35
|
+
payload.entries = data.entries;
|
|
36
|
+
const response = await this.client.post(`/api/v2/add_plan/${projectId}`, payload);
|
|
37
|
+
return response.data;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw handleApiError(error, `Failed to add test plan to project ${projectId}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Adds a test plan entry
|
|
45
|
+
* @param planId The ID of the test plan
|
|
46
|
+
* @param data Plan entry data
|
|
47
|
+
* @returns Promise with created plan entry
|
|
48
|
+
*/
|
|
49
|
+
async addPlanEntry(planId, data) {
|
|
50
|
+
try {
|
|
51
|
+
const payload = {
|
|
52
|
+
suite_id: data.suiteId,
|
|
53
|
+
};
|
|
54
|
+
if (data.name)
|
|
55
|
+
payload.name = data.name;
|
|
56
|
+
if (data.description)
|
|
57
|
+
payload.description = data.description;
|
|
58
|
+
if (data.assignedtoId)
|
|
59
|
+
payload.assignedto_id = data.assignedtoId;
|
|
60
|
+
if (data.includeAll !== undefined)
|
|
61
|
+
payload.include_all = data.includeAll;
|
|
62
|
+
if (data.caseIds)
|
|
63
|
+
payload.case_ids = data.caseIds;
|
|
64
|
+
if (data.configIds)
|
|
65
|
+
payload.config_ids = data.configIds;
|
|
66
|
+
if (data.refs)
|
|
67
|
+
payload.refs = data.refs;
|
|
68
|
+
if (data.runs)
|
|
69
|
+
payload.runs = data.runs;
|
|
70
|
+
const response = await this.client.post(`/api/v2/add_plan_entry/${planId}`, payload);
|
|
71
|
+
return response.data;
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
throw handleApiError(error, `Failed to add plan entry to plan ${planId}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Adds a test run to a plan entry
|
|
79
|
+
* @param planId The ID of the test plan
|
|
80
|
+
* @param entryId The ID of the plan entry
|
|
81
|
+
* @param data Run data
|
|
82
|
+
* @returns Promise with created test run
|
|
83
|
+
*/
|
|
84
|
+
async addRunToPlanEntry(planId, entryId, data) {
|
|
85
|
+
try {
|
|
86
|
+
const payload = {
|
|
87
|
+
config_ids: data.configIds,
|
|
88
|
+
};
|
|
89
|
+
if (data.description)
|
|
90
|
+
payload.description = data.description;
|
|
91
|
+
if (data.assignedtoId)
|
|
92
|
+
payload.assignedto_id = data.assignedtoId;
|
|
93
|
+
if (data.includeAll !== undefined)
|
|
94
|
+
payload.include_all = data.includeAll;
|
|
95
|
+
if (data.caseIds)
|
|
96
|
+
payload.case_ids = data.caseIds;
|
|
97
|
+
if (data.refs)
|
|
98
|
+
payload.refs = data.refs;
|
|
99
|
+
const response = await this.client.post(`/api/v2/add_run_to_plan_entry/${planId}/${entryId}`, payload);
|
|
100
|
+
return response.data;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
throw handleApiError(error, `Failed to add run to plan entry ${entryId} in plan ${planId}`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
19
106
|
}
|
|
20
107
|
//# sourceMappingURL=plans.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/client/api/plans.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/client/api/plans.ts"],"names":[],"mappings":"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"}
|
package/dist/server/api/plans.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createSuccessResponse, createErrorResponse } from "./utils.js";
|
|
2
|
-
import { getPlansSchema } from "../../shared/schemas/plans.js";
|
|
2
|
+
import { getPlansSchema, addPlanSchema, addPlanEntrySchema, addRunToPlanEntrySchema, } from "../../shared/schemas/plans.js";
|
|
3
3
|
/**
|
|
4
4
|
* Function to register test plan-related API tools
|
|
5
5
|
* @param server McpServer instance
|
|
@@ -25,5 +25,91 @@ export function registerPlanTools(server, testRailClient) {
|
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
27
|
});
|
|
28
|
+
// Add a new test plan
|
|
29
|
+
server.tool("addPlan", "Creates a new test plan in a TestRail project / TestRailプロジェクトに新しいテストプランを作成します", {
|
|
30
|
+
projectId: addPlanSchema.shape.projectId,
|
|
31
|
+
name: addPlanSchema.shape.name,
|
|
32
|
+
description: addPlanSchema.shape.description,
|
|
33
|
+
milestoneId: addPlanSchema.shape.milestoneId,
|
|
34
|
+
entries: addPlanSchema.shape.entries,
|
|
35
|
+
}, async (args) => {
|
|
36
|
+
try {
|
|
37
|
+
const { projectId, ...data } = args;
|
|
38
|
+
const plan = await testRailClient.plans.addPlan(projectId, data);
|
|
39
|
+
const successResponse = createSuccessResponse("Test plan created successfully", {
|
|
40
|
+
plan,
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
content: [{ type: "text", text: JSON.stringify(successResponse) }],
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const errorResponse = createErrorResponse(`Error creating test plan in project ${args.projectId}`, error);
|
|
48
|
+
return {
|
|
49
|
+
content: [{ type: "text", text: JSON.stringify(errorResponse) }],
|
|
50
|
+
isError: true,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
// Add a plan entry
|
|
55
|
+
server.tool("addPlanEntry", "Adds a new test plan entry to an existing test plan / 既存のテストプランに新しいテストプランエントリーを追加します", {
|
|
56
|
+
planId: addPlanEntrySchema.shape.planId,
|
|
57
|
+
suiteId: addPlanEntrySchema.shape.suiteId,
|
|
58
|
+
name: addPlanEntrySchema.shape.name,
|
|
59
|
+
description: addPlanEntrySchema.shape.description,
|
|
60
|
+
assignedtoId: addPlanEntrySchema.shape.assignedtoId,
|
|
61
|
+
includeAll: addPlanEntrySchema.shape.includeAll,
|
|
62
|
+
caseIds: addPlanEntrySchema.shape.caseIds,
|
|
63
|
+
configIds: addPlanEntrySchema.shape.configIds,
|
|
64
|
+
refs: addPlanEntrySchema.shape.refs,
|
|
65
|
+
runs: addPlanEntrySchema.shape.runs,
|
|
66
|
+
}, async (args) => {
|
|
67
|
+
try {
|
|
68
|
+
const { planId, ...data } = args;
|
|
69
|
+
const entry = await testRailClient.plans.addPlanEntry(planId, data);
|
|
70
|
+
const successResponse = createSuccessResponse("Plan entry added successfully", {
|
|
71
|
+
entry,
|
|
72
|
+
});
|
|
73
|
+
return {
|
|
74
|
+
content: [{ type: "text", text: JSON.stringify(successResponse) }],
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
const errorResponse = createErrorResponse(`Error adding plan entry to plan ${args.planId}`, error);
|
|
79
|
+
return {
|
|
80
|
+
content: [{ type: "text", text: JSON.stringify(errorResponse) }],
|
|
81
|
+
isError: true,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
// Add a run to plan entry
|
|
86
|
+
server.tool("addRunToPlanEntry", "Adds a new test run to an existing plan entry / 既存のプランエントリーに新しいテストランを追加します", {
|
|
87
|
+
planId: addRunToPlanEntrySchema.shape.planId,
|
|
88
|
+
entryId: addRunToPlanEntrySchema.shape.entryId,
|
|
89
|
+
configIds: addRunToPlanEntrySchema.shape.configIds,
|
|
90
|
+
description: addRunToPlanEntrySchema.shape.description,
|
|
91
|
+
assignedtoId: addRunToPlanEntrySchema.shape.assignedtoId,
|
|
92
|
+
includeAll: addRunToPlanEntrySchema.shape.includeAll,
|
|
93
|
+
caseIds: addRunToPlanEntrySchema.shape.caseIds,
|
|
94
|
+
refs: addRunToPlanEntrySchema.shape.refs,
|
|
95
|
+
}, async (args) => {
|
|
96
|
+
try {
|
|
97
|
+
const { planId, entryId, ...data } = args;
|
|
98
|
+
const run = await testRailClient.plans.addRunToPlanEntry(planId, entryId, data);
|
|
99
|
+
const successResponse = createSuccessResponse("Test run added to plan entry successfully", {
|
|
100
|
+
run,
|
|
101
|
+
});
|
|
102
|
+
return {
|
|
103
|
+
content: [{ type: "text", text: JSON.stringify(successResponse) }],
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
const errorResponse = createErrorResponse(`Error adding run to plan entry ${args.entryId} in plan ${args.planId}`, error);
|
|
108
|
+
return {
|
|
109
|
+
content: [{ type: "text", text: JSON.stringify(errorResponse) }],
|
|
110
|
+
isError: true,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
});
|
|
28
114
|
}
|
|
29
115
|
//# sourceMappingURL=plans.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/server/api/plans.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/server/api/plans.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,132 @@ import { z } from "zod";
|
|
|
2
2
|
export declare const getPlansSchema: {
|
|
3
3
|
projectId: z.ZodNumber;
|
|
4
4
|
};
|
|
5
|
+
export declare const addPlanSchema: z.ZodObject<{
|
|
6
|
+
projectId: z.ZodNumber;
|
|
7
|
+
name: z.ZodString;
|
|
8
|
+
description: z.ZodOptional<z.ZodString>;
|
|
9
|
+
milestoneId: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
entries: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
11
|
+
suite_id: z.ZodNumber;
|
|
12
|
+
name: z.ZodOptional<z.ZodString>;
|
|
13
|
+
description: z.ZodOptional<z.ZodString>;
|
|
14
|
+
assignedto_id: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
include_all: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
case_ids: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
17
|
+
config_ids: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
18
|
+
runs: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
|
|
19
|
+
}, "strip", z.ZodTypeAny, {
|
|
20
|
+
suite_id: number;
|
|
21
|
+
name?: string | undefined;
|
|
22
|
+
description?: string | undefined;
|
|
23
|
+
case_ids?: number[] | undefined;
|
|
24
|
+
include_all?: boolean | undefined;
|
|
25
|
+
assignedto_id?: number | undefined;
|
|
26
|
+
config_ids?: number[] | undefined;
|
|
27
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
suite_id: number;
|
|
30
|
+
name?: string | undefined;
|
|
31
|
+
description?: string | undefined;
|
|
32
|
+
case_ids?: number[] | undefined;
|
|
33
|
+
include_all?: boolean | undefined;
|
|
34
|
+
assignedto_id?: number | undefined;
|
|
35
|
+
config_ids?: number[] | undefined;
|
|
36
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
37
|
+
}>, "many">>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
projectId: number;
|
|
40
|
+
name: string;
|
|
41
|
+
entries?: {
|
|
42
|
+
suite_id: number;
|
|
43
|
+
name?: string | undefined;
|
|
44
|
+
description?: string | undefined;
|
|
45
|
+
case_ids?: number[] | undefined;
|
|
46
|
+
include_all?: boolean | undefined;
|
|
47
|
+
assignedto_id?: number | undefined;
|
|
48
|
+
config_ids?: number[] | undefined;
|
|
49
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
50
|
+
}[] | undefined;
|
|
51
|
+
description?: string | undefined;
|
|
52
|
+
milestoneId?: number | undefined;
|
|
53
|
+
}, {
|
|
54
|
+
projectId: number;
|
|
55
|
+
name: string;
|
|
56
|
+
entries?: {
|
|
57
|
+
suite_id: number;
|
|
58
|
+
name?: string | undefined;
|
|
59
|
+
description?: string | undefined;
|
|
60
|
+
case_ids?: number[] | undefined;
|
|
61
|
+
include_all?: boolean | undefined;
|
|
62
|
+
assignedto_id?: number | undefined;
|
|
63
|
+
config_ids?: number[] | undefined;
|
|
64
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
65
|
+
}[] | undefined;
|
|
66
|
+
description?: string | undefined;
|
|
67
|
+
milestoneId?: number | undefined;
|
|
68
|
+
}>;
|
|
69
|
+
export declare const addPlanEntrySchema: z.ZodObject<{
|
|
70
|
+
planId: z.ZodNumber;
|
|
71
|
+
suiteId: z.ZodNumber;
|
|
72
|
+
name: z.ZodOptional<z.ZodString>;
|
|
73
|
+
description: z.ZodOptional<z.ZodString>;
|
|
74
|
+
assignedtoId: z.ZodOptional<z.ZodNumber>;
|
|
75
|
+
includeAll: z.ZodOptional<z.ZodBoolean>;
|
|
76
|
+
caseIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
77
|
+
configIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
78
|
+
refs: z.ZodOptional<z.ZodString>;
|
|
79
|
+
runs: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
|
|
80
|
+
}, "strip", z.ZodTypeAny, {
|
|
81
|
+
suiteId: number;
|
|
82
|
+
planId: number;
|
|
83
|
+
name?: string | undefined;
|
|
84
|
+
description?: string | undefined;
|
|
85
|
+
refs?: string | undefined;
|
|
86
|
+
caseIds?: number[] | undefined;
|
|
87
|
+
assignedtoId?: number | undefined;
|
|
88
|
+
includeAll?: boolean | undefined;
|
|
89
|
+
configIds?: number[] | undefined;
|
|
90
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
91
|
+
}, {
|
|
92
|
+
suiteId: number;
|
|
93
|
+
planId: number;
|
|
94
|
+
name?: string | undefined;
|
|
95
|
+
description?: string | undefined;
|
|
96
|
+
refs?: string | undefined;
|
|
97
|
+
caseIds?: number[] | undefined;
|
|
98
|
+
assignedtoId?: number | undefined;
|
|
99
|
+
includeAll?: boolean | undefined;
|
|
100
|
+
configIds?: number[] | undefined;
|
|
101
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
102
|
+
}>;
|
|
103
|
+
export declare const addRunToPlanEntrySchema: z.ZodObject<{
|
|
104
|
+
planId: z.ZodNumber;
|
|
105
|
+
entryId: z.ZodString;
|
|
106
|
+
configIds: z.ZodArray<z.ZodNumber, "many">;
|
|
107
|
+
description: z.ZodOptional<z.ZodString>;
|
|
108
|
+
assignedtoId: z.ZodOptional<z.ZodNumber>;
|
|
109
|
+
includeAll: z.ZodOptional<z.ZodBoolean>;
|
|
110
|
+
caseIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
111
|
+
refs: z.ZodOptional<z.ZodString>;
|
|
112
|
+
}, "strip", z.ZodTypeAny, {
|
|
113
|
+
configIds: number[];
|
|
114
|
+
planId: number;
|
|
115
|
+
entryId: string;
|
|
116
|
+
description?: string | undefined;
|
|
117
|
+
refs?: string | undefined;
|
|
118
|
+
caseIds?: number[] | undefined;
|
|
119
|
+
assignedtoId?: number | undefined;
|
|
120
|
+
includeAll?: boolean | undefined;
|
|
121
|
+
}, {
|
|
122
|
+
configIds: number[];
|
|
123
|
+
planId: number;
|
|
124
|
+
entryId: string;
|
|
125
|
+
description?: string | undefined;
|
|
126
|
+
refs?: string | undefined;
|
|
127
|
+
caseIds?: number[] | undefined;
|
|
128
|
+
assignedtoId?: number | undefined;
|
|
129
|
+
includeAll?: boolean | undefined;
|
|
130
|
+
}>;
|
|
5
131
|
export declare const GetPlansInput: z.ZodObject<{
|
|
6
132
|
projectId: z.ZodNumber;
|
|
7
133
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -9,7 +135,136 @@ export declare const GetPlansInput: z.ZodObject<{
|
|
|
9
135
|
}, {
|
|
10
136
|
projectId: number;
|
|
11
137
|
}>;
|
|
138
|
+
export declare const AddPlanInput: z.ZodObject<{
|
|
139
|
+
projectId: z.ZodNumber;
|
|
140
|
+
name: z.ZodString;
|
|
141
|
+
description: z.ZodOptional<z.ZodString>;
|
|
142
|
+
milestoneId: z.ZodOptional<z.ZodNumber>;
|
|
143
|
+
entries: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
144
|
+
suite_id: z.ZodNumber;
|
|
145
|
+
name: z.ZodOptional<z.ZodString>;
|
|
146
|
+
description: z.ZodOptional<z.ZodString>;
|
|
147
|
+
assignedto_id: z.ZodOptional<z.ZodNumber>;
|
|
148
|
+
include_all: z.ZodOptional<z.ZodBoolean>;
|
|
149
|
+
case_ids: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
150
|
+
config_ids: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
151
|
+
runs: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
|
|
152
|
+
}, "strip", z.ZodTypeAny, {
|
|
153
|
+
suite_id: number;
|
|
154
|
+
name?: string | undefined;
|
|
155
|
+
description?: string | undefined;
|
|
156
|
+
case_ids?: number[] | undefined;
|
|
157
|
+
include_all?: boolean | undefined;
|
|
158
|
+
assignedto_id?: number | undefined;
|
|
159
|
+
config_ids?: number[] | undefined;
|
|
160
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
161
|
+
}, {
|
|
162
|
+
suite_id: number;
|
|
163
|
+
name?: string | undefined;
|
|
164
|
+
description?: string | undefined;
|
|
165
|
+
case_ids?: number[] | undefined;
|
|
166
|
+
include_all?: boolean | undefined;
|
|
167
|
+
assignedto_id?: number | undefined;
|
|
168
|
+
config_ids?: number[] | undefined;
|
|
169
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
170
|
+
}>, "many">>;
|
|
171
|
+
}, "strip", z.ZodTypeAny, {
|
|
172
|
+
projectId: number;
|
|
173
|
+
name: string;
|
|
174
|
+
entries?: {
|
|
175
|
+
suite_id: number;
|
|
176
|
+
name?: string | undefined;
|
|
177
|
+
description?: string | undefined;
|
|
178
|
+
case_ids?: number[] | undefined;
|
|
179
|
+
include_all?: boolean | undefined;
|
|
180
|
+
assignedto_id?: number | undefined;
|
|
181
|
+
config_ids?: number[] | undefined;
|
|
182
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
183
|
+
}[] | undefined;
|
|
184
|
+
description?: string | undefined;
|
|
185
|
+
milestoneId?: number | undefined;
|
|
186
|
+
}, {
|
|
187
|
+
projectId: number;
|
|
188
|
+
name: string;
|
|
189
|
+
entries?: {
|
|
190
|
+
suite_id: number;
|
|
191
|
+
name?: string | undefined;
|
|
192
|
+
description?: string | undefined;
|
|
193
|
+
case_ids?: number[] | undefined;
|
|
194
|
+
include_all?: boolean | undefined;
|
|
195
|
+
assignedto_id?: number | undefined;
|
|
196
|
+
config_ids?: number[] | undefined;
|
|
197
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
198
|
+
}[] | undefined;
|
|
199
|
+
description?: string | undefined;
|
|
200
|
+
milestoneId?: number | undefined;
|
|
201
|
+
}>;
|
|
202
|
+
export declare const AddPlanEntryInput: z.ZodObject<{
|
|
203
|
+
planId: z.ZodNumber;
|
|
204
|
+
suiteId: z.ZodNumber;
|
|
205
|
+
name: z.ZodOptional<z.ZodString>;
|
|
206
|
+
description: z.ZodOptional<z.ZodString>;
|
|
207
|
+
assignedtoId: z.ZodOptional<z.ZodNumber>;
|
|
208
|
+
includeAll: z.ZodOptional<z.ZodBoolean>;
|
|
209
|
+
caseIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
210
|
+
configIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
211
|
+
refs: z.ZodOptional<z.ZodString>;
|
|
212
|
+
runs: z.ZodOptional<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">>;
|
|
213
|
+
}, "strip", z.ZodTypeAny, {
|
|
214
|
+
suiteId: number;
|
|
215
|
+
planId: number;
|
|
216
|
+
name?: string | undefined;
|
|
217
|
+
description?: string | undefined;
|
|
218
|
+
refs?: string | undefined;
|
|
219
|
+
caseIds?: number[] | undefined;
|
|
220
|
+
assignedtoId?: number | undefined;
|
|
221
|
+
includeAll?: boolean | undefined;
|
|
222
|
+
configIds?: number[] | undefined;
|
|
223
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
224
|
+
}, {
|
|
225
|
+
suiteId: number;
|
|
226
|
+
planId: number;
|
|
227
|
+
name?: string | undefined;
|
|
228
|
+
description?: string | undefined;
|
|
229
|
+
refs?: string | undefined;
|
|
230
|
+
caseIds?: number[] | undefined;
|
|
231
|
+
assignedtoId?: number | undefined;
|
|
232
|
+
includeAll?: boolean | undefined;
|
|
233
|
+
configIds?: number[] | undefined;
|
|
234
|
+
runs?: Record<string, unknown>[] | undefined;
|
|
235
|
+
}>;
|
|
236
|
+
export declare const AddRunToPlanEntryInput: z.ZodObject<{
|
|
237
|
+
planId: z.ZodNumber;
|
|
238
|
+
entryId: z.ZodString;
|
|
239
|
+
configIds: z.ZodArray<z.ZodNumber, "many">;
|
|
240
|
+
description: z.ZodOptional<z.ZodString>;
|
|
241
|
+
assignedtoId: z.ZodOptional<z.ZodNumber>;
|
|
242
|
+
includeAll: z.ZodOptional<z.ZodBoolean>;
|
|
243
|
+
caseIds: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
244
|
+
refs: z.ZodOptional<z.ZodString>;
|
|
245
|
+
}, "strip", z.ZodTypeAny, {
|
|
246
|
+
configIds: number[];
|
|
247
|
+
planId: number;
|
|
248
|
+
entryId: string;
|
|
249
|
+
description?: string | undefined;
|
|
250
|
+
refs?: string | undefined;
|
|
251
|
+
caseIds?: number[] | undefined;
|
|
252
|
+
assignedtoId?: number | undefined;
|
|
253
|
+
includeAll?: boolean | undefined;
|
|
254
|
+
}, {
|
|
255
|
+
configIds: number[];
|
|
256
|
+
planId: number;
|
|
257
|
+
entryId: string;
|
|
258
|
+
description?: string | undefined;
|
|
259
|
+
refs?: string | undefined;
|
|
260
|
+
caseIds?: number[] | undefined;
|
|
261
|
+
assignedtoId?: number | undefined;
|
|
262
|
+
includeAll?: boolean | undefined;
|
|
263
|
+
}>;
|
|
12
264
|
export type GetPlansInputType = z.infer<typeof GetPlansInput>;
|
|
265
|
+
export type AddPlanInputType = z.infer<typeof AddPlanInput>;
|
|
266
|
+
export type AddPlanEntryInputType = z.infer<typeof AddPlanEntryInput>;
|
|
267
|
+
export type AddRunToPlanEntryInputType = z.infer<typeof AddRunToPlanEntryInput>;
|
|
13
268
|
/**
|
|
14
269
|
* TestRail API Response for Plan Entry
|
|
15
270
|
*/
|
|
@@ -4,8 +4,64 @@ import { TestRailRunSchema } from "./runs.js";
|
|
|
4
4
|
export const getPlansSchema = {
|
|
5
5
|
projectId: z.number().describe("TestRail Project ID"),
|
|
6
6
|
};
|
|
7
|
+
// Schema for adding a new test plan
|
|
8
|
+
export const addPlanSchema = z.object({
|
|
9
|
+
projectId: z.number().describe("TestRail Project ID"),
|
|
10
|
+
name: z.string().describe("Test plan name"),
|
|
11
|
+
description: z.string().optional().describe("Test plan description"),
|
|
12
|
+
milestoneId: z.number().optional().describe("Milestone ID"),
|
|
13
|
+
entries: z
|
|
14
|
+
.array(z.object({
|
|
15
|
+
suite_id: z.number(),
|
|
16
|
+
name: z.string().optional(),
|
|
17
|
+
description: z.string().optional(),
|
|
18
|
+
assignedto_id: z.number().optional(),
|
|
19
|
+
include_all: z.boolean().optional(),
|
|
20
|
+
case_ids: z.array(z.number()).optional(),
|
|
21
|
+
config_ids: z.array(z.number()).optional(),
|
|
22
|
+
runs: z.array(z.record(z.unknown())).optional(),
|
|
23
|
+
}))
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Test runs to include in the plan"),
|
|
26
|
+
});
|
|
27
|
+
// Schema for adding a plan entry
|
|
28
|
+
export const addPlanEntrySchema = z.object({
|
|
29
|
+
planId: z.number().describe("TestRail Plan ID"),
|
|
30
|
+
suiteId: z.number().describe("Test suite ID"),
|
|
31
|
+
name: z.string().optional().describe("Plan entry name"),
|
|
32
|
+
description: z.string().optional().describe("Plan entry description"),
|
|
33
|
+
assignedtoId: z.number().optional().describe("User ID to assign to"),
|
|
34
|
+
includeAll: z.boolean().optional().describe("Include all test cases"),
|
|
35
|
+
caseIds: z
|
|
36
|
+
.array(z.number())
|
|
37
|
+
.optional()
|
|
38
|
+
.describe("Specific case IDs to include"),
|
|
39
|
+
configIds: z.array(z.number()).optional().describe("Configuration IDs"),
|
|
40
|
+
refs: z.string().optional().describe("References"),
|
|
41
|
+
runs: z
|
|
42
|
+
.array(z.record(z.unknown()))
|
|
43
|
+
.optional()
|
|
44
|
+
.describe("Test run configurations"),
|
|
45
|
+
});
|
|
46
|
+
// Schema for adding a run to plan entry
|
|
47
|
+
export const addRunToPlanEntrySchema = z.object({
|
|
48
|
+
planId: z.number().describe("TestRail Plan ID"),
|
|
49
|
+
entryId: z.string().describe("Plan Entry ID"),
|
|
50
|
+
configIds: z.array(z.number()).describe("Configuration IDs for the test run"),
|
|
51
|
+
description: z.string().optional().describe("Test run description"),
|
|
52
|
+
assignedtoId: z.number().optional().describe("User ID to assign to"),
|
|
53
|
+
includeAll: z.boolean().optional().describe("Include all test cases"),
|
|
54
|
+
caseIds: z
|
|
55
|
+
.array(z.number())
|
|
56
|
+
.optional()
|
|
57
|
+
.describe("Specific case IDs to include"),
|
|
58
|
+
refs: z.string().optional().describe("References"),
|
|
59
|
+
});
|
|
7
60
|
// Create Zod objects from each schema
|
|
8
61
|
export const GetPlansInput = z.object(getPlansSchema);
|
|
62
|
+
export const AddPlanInput = addPlanSchema;
|
|
63
|
+
export const AddPlanEntryInput = addPlanEntrySchema;
|
|
64
|
+
export const AddRunToPlanEntryInput = addRunToPlanEntrySchema;
|
|
9
65
|
/**
|
|
10
66
|
* TestRail API Response for Plan Entry
|
|
11
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/shared/schemas/plans.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC7B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;CACrD,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/shared/schemas/plans.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.17.1",
|
|
10
10
|
"type": "module",
|
|
11
11
|
"main": "dist/index.js",
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
37
|
"@biomejs/biome": "^1.9.4",
|
|
38
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
38
|
+
"@modelcontextprotocol/sdk": "^1.24.0",
|
|
39
39
|
"axios": "^1.8.4",
|
|
40
40
|
"dotenv": "^16.4.5",
|
|
41
41
|
"fastmcp": "^1.20.5",
|