@@ -14,7 +14,6 @@ import {
14
14
CreateTestCaseSchema ,
15
15
} from "./testmanagement-utils/create-testcase" ;
16
16
17
-
18
17
let serverInstance : McpServer ;
19
18
20
19
import {
@@ -37,8 +36,10 @@ import {
37
36
updateTestRun ,
38
37
} from "./testmanagement-utils/update-testrun" ;
39
38
40
-
41
- //TODO: Moving the traceMCP and catch block to the parent(server) function
39
+ import {
40
+ addTestResult ,
41
+ AddTestResultSchema ,
42
+ } from "./testmanagement-utils/add-test-result" ;
42
43
43
44
/**
44
45
* Wrapper to call createProjectOrFolder util.
@@ -111,8 +112,10 @@ export async function listTestCasesTool(
111
112
args : z . infer < typeof ListTestCasesSchema > ,
112
113
) : Promise < CallToolResult > {
113
114
try {
115
+ trackMCP ( "listTestCases" , serverInstance . server . getClientVersion ( ) ! ) ;
114
116
return await listTestCases ( args ) ;
115
117
} catch ( err ) {
118
+ trackMCP ( "listTestCases" , serverInstance . server . getClientVersion ( ) ! , err ) ;
116
119
return {
117
120
content : [
118
121
{
@@ -135,8 +138,10 @@ export async function createTestRunTool(
135
138
args : z . infer < typeof CreateTestRunSchema > ,
136
139
) : Promise < CallToolResult > {
137
140
try {
141
+ trackMCP ( "createTestRun" , serverInstance . server . getClientVersion ( ) ! ) ;
138
142
return await createTestRun ( args ) ;
139
143
} catch ( err ) {
144
+ trackMCP ( "createTestRun" , serverInstance . server . getClientVersion ( ) ! , err ) ;
140
145
return {
141
146
content : [
142
147
{
@@ -159,8 +164,10 @@ export async function listTestRunsTool(
159
164
args : z . infer < typeof ListTestRunsSchema > ,
160
165
) : Promise < CallToolResult > {
161
166
try {
167
+ trackMCP ( "listTestRuns" , serverInstance . server . getClientVersion ( ) ! ) ;
162
168
return await listTestRuns ( args ) ;
163
169
} catch ( err ) {
170
+ trackMCP ( "listTestRuns" , serverInstance . server . getClientVersion ( ) ! , err ) ;
164
171
return {
165
172
content : [
166
173
{
@@ -185,8 +192,10 @@ export async function updateTestRunTool(
185
192
args : z . infer < typeof UpdateTestRunSchema > ,
186
193
) : Promise < CallToolResult > {
187
194
try {
195
+ trackMCP ( "updateTestRun" , serverInstance . server . getClientVersion ( ) ! ) ;
188
196
return await updateTestRun ( args ) ;
189
197
} catch ( err ) {
198
+ trackMCP ( "updateTestRun" , serverInstance . server . getClientVersion ( ) ! , err ) ;
190
199
return {
191
200
content : [
192
201
{
@@ -202,6 +211,32 @@ export async function updateTestRunTool(
202
211
}
203
212
}
204
213
214
+ /**
215
+ * Adds a test result to a specific test run via BrowserStack Test Management API.
216
+ */
217
+ export async function addTestResultTool (
218
+ args : z . infer < typeof AddTestResultSchema > ,
219
+ ) : Promise < CallToolResult > {
220
+ try {
221
+ trackMCP ( "addTestResult" , serverInstance . server . getClientVersion ( ) ! ) ;
222
+ return await addTestResult ( args ) ;
223
+ } catch ( err ) {
224
+ trackMCP ( "addTestResult" , serverInstance . server . getClientVersion ( ) ! , err ) ;
225
+ return {
226
+ content : [
227
+ {
228
+ type : "text" ,
229
+ text : `Failed to add test result: ${
230
+ err instanceof Error ? err . message : "Unknown error"
231
+ } . Please open an issue on GitHub if the problem persists`,
232
+ isError : true ,
233
+ } ,
234
+ ] ,
235
+ isError : true ,
236
+ } ;
237
+ }
238
+ }
239
+
205
240
/**
206
241
* Registers both project/folder and test-case tools.
207
242
*/
@@ -247,4 +282,10 @@ export default function addTestManagementTools(server: McpServer) {
247
282
UpdateTestRunSchema . shape ,
248
283
updateTestRunTool ,
249
284
) ;
285
+ server . tool (
286
+ "addTestResult" ,
287
+ "Add a test result to a specific test run via BrowserStack Test Management API." ,
288
+ AddTestResultSchema . shape ,
289
+ addTestResultTool ,
290
+ ) ;
250
291
}
0 commit comments