1
+ import { createProjectOrFolderTool } from '../../src/tools/testmanagement' ;
2
+ import { createProjectOrFolder } from '../../src/tools/testmanagement-utils/create-project-folder' ;
1
3
import { createTestCaseTool } from '../../src/tools/testmanagement' ;
2
4
import { createTestCase , sanitizeArgs , TestCaseCreateRequest } from '../../src/tools/testmanagement-utils/create-testcase' ;
3
5
4
- // Mock the dependencies
6
+ // Mock dependencies
7
+ jest . mock ( '../../src/tools/testmanagement-utils/create-project-folder' , ( ) => ( {
8
+ createProjectOrFolder : jest . fn ( ) ,
9
+ CreateProjFoldSchema : {
10
+ parse : ( args : any ) => args ,
11
+ shape : { } ,
12
+ } ,
13
+ } ) ) ;
5
14
jest . mock ( '../../src/tools/testmanagement-utils/create-testcase' , ( ) => ( {
6
15
createTestCase : jest . fn ( ) ,
7
16
sanitizeArgs : jest . fn ( ( args ) => args ) ,
@@ -36,7 +45,7 @@ describe('createTestCaseTool', () => {
36
45
custom_fields : { priority : 'high' } ,
37
46
} ;
38
47
39
- const mockResponse = {
48
+ const mockTestCaseResponse = {
40
49
data : {
41
50
success : true ,
42
51
test_case : {
@@ -48,7 +57,7 @@ describe('createTestCaseTool', () => {
48
57
} ;
49
58
50
59
it ( 'should successfully create a test case' , async ( ) => {
51
- ( createTestCase as jest . Mock ) . mockResolvedValue ( mockResponse ) ;
60
+ ( createTestCase as jest . Mock ) . mockResolvedValue ( mockTestCaseResponse ) ;
52
61
53
62
const result = await createTestCaseTool ( validArgs ) ;
54
63
@@ -58,7 +67,7 @@ describe('createTestCaseTool', () => {
58
67
expect ( result . content [ 1 ] . text ) . toContain ( '"title": "Sample Test Case"' ) ;
59
68
} ) ;
60
69
61
- it ( 'should handle API errors gracefully ' , async ( ) => {
70
+ it ( 'should handle API errors while creating test case ' , async ( ) => {
62
71
( createTestCase as jest . Mock ) . mockRejectedValue ( new Error ( 'API Error' ) ) ;
63
72
64
73
const result = await createTestCaseTool ( validArgs ) ;
@@ -67,7 +76,7 @@ describe('createTestCaseTool', () => {
67
76
expect ( result . content [ 0 ] . text ) . toContain ( 'Failed to create test case: API Error' ) ;
68
77
} ) ;
69
78
70
- it ( 'should handle unknown error types ' , async ( ) => {
79
+ it ( 'should handle unknown error while creating test case ' , async ( ) => {
71
80
( createTestCase as jest . Mock ) . mockRejectedValue ( 'unexpected' ) ;
72
81
73
82
const result = await createTestCaseTool ( validArgs ) ;
@@ -76,3 +85,64 @@ describe('createTestCaseTool', () => {
76
85
expect ( result . content [ 0 ] . text ) . toContain ( 'Unknown error' ) ;
77
86
} ) ;
78
87
} ) ;
88
+
89
+ describe ( 'createProjectOrFolderTool' , ( ) => {
90
+ beforeEach ( ( ) => {
91
+ jest . clearAllMocks ( ) ;
92
+ } ) ;
93
+
94
+ const validProjectArgs = {
95
+ project_name : 'My New Project' ,
96
+ project_description : 'This is a test project' ,
97
+ } ;
98
+
99
+ const validFolderArgs = {
100
+ project_identifier : 'proj-123' ,
101
+ folder_name : 'My Test Folder' ,
102
+ folder_description : 'This is a folder under project' ,
103
+ } ;
104
+
105
+ const mockProjectResponse = {
106
+ content : [ { type : 'text' , text : 'Project created with identifier=proj-123' } ] ,
107
+ } ;
108
+
109
+ const mockFolderResponse = {
110
+ content : [ { type : 'text' , text : 'Folder created: ID=fold-123, name="My Folder" in project proj-123' } ] ,
111
+ } ;
112
+
113
+ it ( 'should successfully create a project' , async ( ) => {
114
+ ( createProjectOrFolder as jest . Mock ) . mockResolvedValue ( mockProjectResponse ) ;
115
+
116
+ const result = await createProjectOrFolderTool ( validProjectArgs ) ;
117
+
118
+ expect ( createProjectOrFolder ) . toHaveBeenCalledWith ( validProjectArgs ) ;
119
+ expect ( result . content [ 0 ] . text ) . toContain ( 'Project created with identifier=proj-123' ) ;
120
+ } ) ;
121
+
122
+ it ( 'should successfully create a folder' , async ( ) => {
123
+ ( createProjectOrFolder as jest . Mock ) . mockResolvedValue ( mockFolderResponse ) ;
124
+
125
+ const result = await createProjectOrFolderTool ( validFolderArgs ) ;
126
+
127
+ expect ( createProjectOrFolder ) . toHaveBeenCalledWith ( validFolderArgs ) ;
128
+ expect ( result . content [ 0 ] . text ) . toContain ( 'Folder created: ID=fold-123' ) ;
129
+ } ) ;
130
+
131
+ it ( 'should handle error while creating project or folder' , async ( ) => {
132
+ ( createProjectOrFolder as jest . Mock ) . mockRejectedValue ( new Error ( 'Failed to create project/folder' ) ) ;
133
+
134
+ const result = await createProjectOrFolderTool ( validProjectArgs ) ;
135
+
136
+ expect ( result . isError ) . toBe ( true ) ;
137
+ expect ( result . content [ 0 ] . text ) . toContain ( 'Failed to create project/folder: Failed to create project/folder' ) ;
138
+ } ) ;
139
+
140
+ it ( 'should handle unknown error while creating project or folder' , async ( ) => {
141
+ ( createProjectOrFolder as jest . Mock ) . mockRejectedValue ( 'some unknown error' ) ;
142
+
143
+ const result = await createProjectOrFolderTool ( validProjectArgs ) ;
144
+
145
+ expect ( result . isError ) . toBe ( true ) ;
146
+ expect ( result . content [ 0 ] . text ) . toContain ( 'Failed to create project/folder: Unknown error' ) ;
147
+ } ) ;
148
+ } ) ;
0 commit comments