@muggleai/mcp-qa-gateway 1.0.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.
Files changed (146) hide show
  1. package/README.md +185 -0
  2. package/dist/scripts/phase0-smoke.d.ts +7 -0
  3. package/dist/scripts/phase0-smoke.d.ts.map +1 -0
  4. package/dist/scripts/phase0-smoke.js +1712 -0
  5. package/dist/scripts/phase0-smoke.js.map +1 -0
  6. package/dist/scripts/types/phase0-smoke-types.d.ts +89 -0
  7. package/dist/scripts/types/phase0-smoke-types.d.ts.map +1 -0
  8. package/dist/scripts/types/phase0-smoke-types.js +3 -0
  9. package/dist/scripts/types/phase0-smoke-types.js.map +1 -0
  10. package/dist/src/__tests__/helpers/mock-setup.d.ts +28 -0
  11. package/dist/src/__tests__/helpers/mock-setup.d.ts.map +1 -0
  12. package/dist/src/__tests__/helpers/mock-setup.js +44 -0
  13. package/dist/src/__tests__/helpers/mock-setup.js.map +1 -0
  14. package/dist/src/__tests__/helpers/test-fixtures.d.ts +38 -0
  15. package/dist/src/__tests__/helpers/test-fixtures.d.ts.map +1 -0
  16. package/dist/src/__tests__/helpers/test-fixtures.js +62 -0
  17. package/dist/src/__tests__/helpers/test-fixtures.js.map +1 -0
  18. package/dist/src/__tests__/tools/artifact-tools.test.d.ts +9 -0
  19. package/dist/src/__tests__/tools/artifact-tools.test.d.ts.map +1 -0
  20. package/dist/src/__tests__/tools/artifact-tools.test.js +307 -0
  21. package/dist/src/__tests__/tools/artifact-tools.test.js.map +1 -0
  22. package/dist/src/__tests__/tools/prd-file-tools.test.d.ts +7 -0
  23. package/dist/src/__tests__/tools/prd-file-tools.test.d.ts.map +1 -0
  24. package/dist/src/__tests__/tools/prd-file-tools.test.js +278 -0
  25. package/dist/src/__tests__/tools/prd-file-tools.test.js.map +1 -0
  26. package/dist/src/__tests__/tools/project-tools.test.d.ts +7 -0
  27. package/dist/src/__tests__/tools/project-tools.test.d.ts.map +1 -0
  28. package/dist/src/__tests__/tools/project-tools.test.js +281 -0
  29. package/dist/src/__tests__/tools/project-tools.test.js.map +1 -0
  30. package/dist/src/__tests__/tools/recommendation-tools.test.d.ts +6 -0
  31. package/dist/src/__tests__/tools/recommendation-tools.test.d.ts.map +1 -0
  32. package/dist/src/__tests__/tools/recommendation-tools.test.js +193 -0
  33. package/dist/src/__tests__/tools/recommendation-tools.test.js.map +1 -0
  34. package/dist/src/__tests__/tools/report-tools.test.d.ts +7 -0
  35. package/dist/src/__tests__/tools/report-tools.test.d.ts.map +1 -0
  36. package/dist/src/__tests__/tools/report-tools.test.js +226 -0
  37. package/dist/src/__tests__/tools/report-tools.test.js.map +1 -0
  38. package/dist/src/__tests__/tools/secret-tools.test.d.ts +6 -0
  39. package/dist/src/__tests__/tools/secret-tools.test.d.ts.map +1 -0
  40. package/dist/src/__tests__/tools/secret-tools.test.js +243 -0
  41. package/dist/src/__tests__/tools/secret-tools.test.js.map +1 -0
  42. package/dist/src/__tests__/tools/test-case-prompt-tools.test.d.ts +6 -0
  43. package/dist/src/__tests__/tools/test-case-prompt-tools.test.d.ts.map +1 -0
  44. package/dist/src/__tests__/tools/test-case-prompt-tools.test.js +291 -0
  45. package/dist/src/__tests__/tools/test-case-prompt-tools.test.js.map +1 -0
  46. package/dist/src/__tests__/tools/tool-registry.test.d.ts +7 -0
  47. package/dist/src/__tests__/tools/tool-registry.test.d.ts.map +1 -0
  48. package/dist/src/__tests__/tools/tool-registry.test.js +205 -0
  49. package/dist/src/__tests__/tools/tool-registry.test.js.map +1 -0
  50. package/dist/src/__tests__/tools/use-case-tools.test.d.ts +7 -0
  51. package/dist/src/__tests__/tools/use-case-tools.test.d.ts.map +1 -0
  52. package/dist/src/__tests__/tools/use-case-tools.test.js +177 -0
  53. package/dist/src/__tests__/tools/use-case-tools.test.js.map +1 -0
  54. package/dist/src/__tests__/tools/workflow-tools.test.d.ts +15 -0
  55. package/dist/src/__tests__/tools/workflow-tools.test.d.ts.map +1 -0
  56. package/dist/src/__tests__/tools/workflow-tools.test.js +627 -0
  57. package/dist/src/__tests__/tools/workflow-tools.test.js.map +1 -0
  58. package/dist/src/config/index.d.ts +18 -0
  59. package/dist/src/config/index.d.ts.map +1 -0
  60. package/dist/src/config/index.js +76 -0
  61. package/dist/src/config/index.js.map +1 -0
  62. package/dist/src/index.d.ts +21 -0
  63. package/dist/src/index.d.ts.map +1 -0
  64. package/dist/src/index.js +88 -0
  65. package/dist/src/index.js.map +1 -0
  66. package/dist/src/interfaces/caller-credentials.d.ts +10 -0
  67. package/dist/src/interfaces/caller-credentials.d.ts.map +1 -0
  68. package/dist/src/interfaces/caller-credentials.js +3 -0
  69. package/dist/src/interfaces/caller-credentials.js.map +1 -0
  70. package/dist/src/interfaces/gateway-config.d.ts +28 -0
  71. package/dist/src/interfaces/gateway-config.d.ts.map +1 -0
  72. package/dist/src/interfaces/gateway-config.js +3 -0
  73. package/dist/src/interfaces/gateway-config.js.map +1 -0
  74. package/dist/src/interfaces/index.d.ts +13 -0
  75. package/dist/src/interfaces/index.d.ts.map +1 -0
  76. package/dist/src/interfaces/index.js +7 -0
  77. package/dist/src/interfaces/index.js.map +1 -0
  78. package/dist/src/interfaces/mcp-tool-call-protocol.d.ts +61 -0
  79. package/dist/src/interfaces/mcp-tool-call-protocol.d.ts.map +1 -0
  80. package/dist/src/interfaces/mcp-tool-call-protocol.js +7 -0
  81. package/dist/src/interfaces/mcp-tool-call-protocol.js.map +1 -0
  82. package/dist/src/interfaces/pagination.d.ts +24 -0
  83. package/dist/src/interfaces/pagination.d.ts.map +1 -0
  84. package/dist/src/interfaces/pagination.js +6 -0
  85. package/dist/src/interfaces/pagination.js.map +1 -0
  86. package/dist/src/interfaces/tool-definition.d.ts +22 -0
  87. package/dist/src/interfaces/tool-definition.d.ts.map +1 -0
  88. package/dist/src/interfaces/tool-definition.js +6 -0
  89. package/dist/src/interfaces/tool-definition.js.map +1 -0
  90. package/dist/src/interfaces/tool-mapping.d.ts +20 -0
  91. package/dist/src/interfaces/tool-mapping.d.ts.map +1 -0
  92. package/dist/src/interfaces/tool-mapping.js +6 -0
  93. package/dist/src/interfaces/tool-mapping.js.map +1 -0
  94. package/dist/src/interfaces/upstream-call.d.ts +27 -0
  95. package/dist/src/interfaces/upstream-call.d.ts.map +1 -0
  96. package/dist/src/interfaces/upstream-call.js +3 -0
  97. package/dist/src/interfaces/upstream-call.js.map +1 -0
  98. package/dist/src/interfaces/upstream-response.d.ts +12 -0
  99. package/dist/src/interfaces/upstream-response.d.ts.map +1 -0
  100. package/dist/src/interfaces/upstream-response.js +3 -0
  101. package/dist/src/interfaces/upstream-response.js.map +1 -0
  102. package/dist/src/server/http-server.d.ts +13 -0
  103. package/dist/src/server/http-server.d.ts.map +1 -0
  104. package/dist/src/server/http-server.js +219 -0
  105. package/dist/src/server/http-server.js.map +1 -0
  106. package/dist/src/server/mcp-server.d.ts +11 -0
  107. package/dist/src/server/mcp-server.d.ts.map +1 -0
  108. package/dist/src/server/mcp-server.js +363 -0
  109. package/dist/src/server/mcp-server.js.map +1 -0
  110. package/dist/src/server/session-credentials.d.ts +8 -0
  111. package/dist/src/server/session-credentials.d.ts.map +1 -0
  112. package/dist/src/server/session-credentials.js +24 -0
  113. package/dist/src/server/session-credentials.js.map +1 -0
  114. package/dist/src/tools/constants.d.ts +6 -0
  115. package/dist/src/tools/constants.d.ts.map +1 -0
  116. package/dist/src/tools/constants.js +9 -0
  117. package/dist/src/tools/constants.js.map +1 -0
  118. package/dist/src/tools/index.d.ts +7 -0
  119. package/dist/src/tools/index.d.ts.map +1 -0
  120. package/dist/src/tools/index.js +23 -0
  121. package/dist/src/tools/index.js.map +1 -0
  122. package/dist/src/tools/schemas.d.ts +906 -0
  123. package/dist/src/tools/schemas.d.ts.map +1 -0
  124. package/dist/src/tools/schemas.js +386 -0
  125. package/dist/src/tools/schemas.js.map +1 -0
  126. package/dist/src/tools/tool-registry.d.ts +26 -0
  127. package/dist/src/tools/tool-registry.d.ts.map +1 -0
  128. package/dist/src/tools/tool-registry.js +1142 -0
  129. package/dist/src/tools/tool-registry.js.map +1 -0
  130. package/dist/src/types/index.d.ts +35 -0
  131. package/dist/src/types/index.d.ts.map +1 -0
  132. package/dist/src/types/index.js +55 -0
  133. package/dist/src/types/index.js.map +1 -0
  134. package/dist/src/upstream/prompt-service-client.d.ts +62 -0
  135. package/dist/src/upstream/prompt-service-client.d.ts.map +1 -0
  136. package/dist/src/upstream/prompt-service-client.js +329 -0
  137. package/dist/src/upstream/prompt-service-client.js.map +1 -0
  138. package/dist/src/utils/logger.d.ts +17 -0
  139. package/dist/src/utils/logger.d.ts.map +1 -0
  140. package/dist/src/utils/logger.js +64 -0
  141. package/dist/src/utils/logger.js.map +1 -0
  142. package/dist/vitest.config.d.ts +3 -0
  143. package/dist/vitest.config.d.ts.map +1 -0
  144. package/dist/vitest.config.js +21 -0
  145. package/dist/vitest.config.js.map +1 -0
  146. package/package.json +66 -0
@@ -0,0 +1,281 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview
4
+ * Test suite for Project MCP tools.
5
+ * Covers: qa_project_create, qa_project_get, qa_project_update, qa_project_list, qa_project_delete.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ const vitest_1 = require("vitest");
9
+ const zod_1 = require("zod");
10
+ const schemas_js_1 = require("../../tools/schemas.js");
11
+ const tool_registry_js_1 = require("../../tools/tool-registry.js");
12
+ const test_fixtures_js_1 = require("../helpers/test-fixtures.js");
13
+ // =============================================================================
14
+ // Helper
15
+ // =============================================================================
16
+ /**
17
+ * Find a tool by name from the registry.
18
+ * @param name - Tool name to find.
19
+ * @returns The tool definition.
20
+ */
21
+ function findTool(name) {
22
+ const tool = tool_registry_js_1.allTools.find((t) => t.name === name);
23
+ if (!tool) {
24
+ throw new Error(`Tool '${name}' not found in registry`);
25
+ }
26
+ return tool;
27
+ }
28
+ // =============================================================================
29
+ // qa_project_create
30
+ // =============================================================================
31
+ (0, vitest_1.describe)("qa_project_create", () => {
32
+ const TOOL_NAME = "qa_project_create";
33
+ (0, vitest_1.describe)("schema validation", () => {
34
+ (0, vitest_1.it)("should accept valid input with all required fields", () => {
35
+ const input = {
36
+ projectName: "My Test Project",
37
+ description: "A test project for QA",
38
+ url: "https://example.com",
39
+ };
40
+ const result = schemas_js_1.ProjectCreateInputSchema.parse(input);
41
+ (0, vitest_1.expect)(result.projectName).toBe("My Test Project");
42
+ (0, vitest_1.expect)(result.description).toBe("A test project for QA");
43
+ (0, vitest_1.expect)(result.url).toBe("https://example.com");
44
+ });
45
+ (0, vitest_1.it)("should reject input with missing projectName", () => {
46
+ const input = {
47
+ description: "A test project",
48
+ url: "https://example.com",
49
+ };
50
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectCreateInputSchema.parse(input)).toThrow(zod_1.ZodError);
51
+ });
52
+ (0, vitest_1.it)("should reject input with empty projectName", () => {
53
+ const input = {
54
+ projectName: "",
55
+ description: "A test project",
56
+ url: "https://example.com",
57
+ };
58
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectCreateInputSchema.parse(input)).toThrow(zod_1.ZodError);
59
+ });
60
+ (0, vitest_1.it)("should reject input with missing description", () => {
61
+ const input = {
62
+ projectName: "My Project",
63
+ url: "https://example.com",
64
+ };
65
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectCreateInputSchema.parse(input)).toThrow(zod_1.ZodError);
66
+ });
67
+ (0, vitest_1.it)("should reject input with invalid URL", () => {
68
+ const input = {
69
+ projectName: "My Project",
70
+ description: "A test project",
71
+ url: "not-a-url",
72
+ };
73
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectCreateInputSchema.parse(input)).toThrow(zod_1.ZodError);
74
+ });
75
+ (0, vitest_1.it)("should reject input with projectName exceeding max length", () => {
76
+ const input = {
77
+ projectName: "a".repeat(256),
78
+ description: "A test project",
79
+ url: "https://example.com",
80
+ };
81
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectCreateInputSchema.parse(input)).toThrow(zod_1.ZodError);
82
+ });
83
+ });
84
+ (0, vitest_1.describe)("mapToUpstream", () => {
85
+ (0, vitest_1.it)("should produce correct upstream call", () => {
86
+ const tool = findTool(TOOL_NAME);
87
+ const input = {
88
+ projectName: "My Project",
89
+ description: "Description here",
90
+ url: "https://example.com",
91
+ };
92
+ const result = tool.mapToUpstream(input);
93
+ (0, vitest_1.expect)(result.method).toBe("POST");
94
+ (0, vitest_1.expect)(result.path).toBe(`${test_fixtures_js_1.TEST_UPSTREAM_PREFIX}/projects`);
95
+ (0, vitest_1.expect)(result.body).toEqual({
96
+ name: "My Project",
97
+ description: "Description here",
98
+ url: "https://example.com",
99
+ });
100
+ });
101
+ });
102
+ });
103
+ // =============================================================================
104
+ // qa_project_get
105
+ // =============================================================================
106
+ (0, vitest_1.describe)("qa_project_get", () => {
107
+ const TOOL_NAME = "qa_project_get";
108
+ (0, vitest_1.describe)("schema validation", () => {
109
+ (0, vitest_1.it)("should accept valid input with projectId", () => {
110
+ const input = { projectId: test_fixtures_js_1.TEST_PROJECT_ID };
111
+ const result = schemas_js_1.ProjectGetInputSchema.parse(input);
112
+ (0, vitest_1.expect)(result.projectId).toBe(test_fixtures_js_1.TEST_PROJECT_ID);
113
+ });
114
+ (0, vitest_1.it)("should reject input with empty projectId", () => {
115
+ const input = { projectId: "" };
116
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectGetInputSchema.parse(input)).toThrow(zod_1.ZodError);
117
+ });
118
+ (0, vitest_1.it)("should reject input with missing projectId", () => {
119
+ const input = {};
120
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectGetInputSchema.parse(input)).toThrow(zod_1.ZodError);
121
+ });
122
+ });
123
+ (0, vitest_1.describe)("mapToUpstream", () => {
124
+ (0, vitest_1.it)("should produce correct GET call with projectId in path", () => {
125
+ const tool = findTool(TOOL_NAME);
126
+ const input = { projectId: test_fixtures_js_1.TEST_PROJECT_ID };
127
+ const result = tool.mapToUpstream(input);
128
+ (0, vitest_1.expect)(result.method).toBe("GET");
129
+ (0, vitest_1.expect)(result.path).toBe(`${test_fixtures_js_1.TEST_UPSTREAM_PREFIX}/projects/${test_fixtures_js_1.TEST_PROJECT_ID}`);
130
+ (0, vitest_1.expect)(result.body).toBeUndefined();
131
+ });
132
+ });
133
+ });
134
+ // =============================================================================
135
+ // qa_project_update
136
+ // =============================================================================
137
+ (0, vitest_1.describe)("qa_project_update", () => {
138
+ const TOOL_NAME = "qa_project_update";
139
+ (0, vitest_1.describe)("schema validation", () => {
140
+ (0, vitest_1.it)("should accept valid input with only projectId", () => {
141
+ const input = { projectId: test_fixtures_js_1.TEST_PROJECT_ID };
142
+ const result = schemas_js_1.ProjectUpdateInputSchema.parse(input);
143
+ (0, vitest_1.expect)(result.projectId).toBe(test_fixtures_js_1.TEST_PROJECT_ID);
144
+ });
145
+ (0, vitest_1.it)("should accept valid input with all optional fields", () => {
146
+ const input = {
147
+ projectId: test_fixtures_js_1.TEST_PROJECT_ID,
148
+ projectName: "Updated Name",
149
+ description: "Updated description",
150
+ url: "https://updated.example.com",
151
+ };
152
+ const result = schemas_js_1.ProjectUpdateInputSchema.parse(input);
153
+ (0, vitest_1.expect)(result.projectName).toBe("Updated Name");
154
+ (0, vitest_1.expect)(result.description).toBe("Updated description");
155
+ (0, vitest_1.expect)(result.url).toBe("https://updated.example.com");
156
+ });
157
+ (0, vitest_1.it)("should reject input with missing projectId", () => {
158
+ const input = { projectName: "Name" };
159
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectUpdateInputSchema.parse(input)).toThrow(zod_1.ZodError);
160
+ });
161
+ (0, vitest_1.it)("should reject input with invalid optional URL", () => {
162
+ const input = {
163
+ projectId: test_fixtures_js_1.TEST_PROJECT_ID,
164
+ url: "not-a-url",
165
+ };
166
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectUpdateInputSchema.parse(input)).toThrow(zod_1.ZodError);
167
+ });
168
+ });
169
+ (0, vitest_1.describe)("mapToUpstream", () => {
170
+ (0, vitest_1.it)("should produce correct PUT call with all fields", () => {
171
+ const tool = findTool(TOOL_NAME);
172
+ const input = {
173
+ projectId: test_fixtures_js_1.TEST_PROJECT_ID,
174
+ projectName: "Updated",
175
+ description: "Updated desc",
176
+ url: "https://updated.com",
177
+ };
178
+ const result = tool.mapToUpstream(input);
179
+ (0, vitest_1.expect)(result.method).toBe("PUT");
180
+ (0, vitest_1.expect)(result.path).toBe(`${test_fixtures_js_1.TEST_UPSTREAM_PREFIX}/projects/${test_fixtures_js_1.TEST_PROJECT_ID}`);
181
+ (0, vitest_1.expect)(result.body).toEqual({
182
+ id: test_fixtures_js_1.TEST_PROJECT_ID,
183
+ name: "Updated",
184
+ description: "Updated desc",
185
+ url: "https://updated.com",
186
+ });
187
+ });
188
+ (0, vitest_1.it)("should produce PUT call with only provided optional fields", () => {
189
+ const tool = findTool(TOOL_NAME);
190
+ const input = {
191
+ projectId: test_fixtures_js_1.TEST_PROJECT_ID,
192
+ projectName: "Only Name Updated",
193
+ };
194
+ const result = tool.mapToUpstream(input);
195
+ (0, vitest_1.expect)(result.body).toEqual({
196
+ id: test_fixtures_js_1.TEST_PROJECT_ID,
197
+ name: "Only Name Updated",
198
+ });
199
+ });
200
+ });
201
+ });
202
+ // =============================================================================
203
+ // qa_project_list
204
+ // =============================================================================
205
+ (0, vitest_1.describe)("qa_project_list", () => {
206
+ const TOOL_NAME = "qa_project_list";
207
+ (0, vitest_1.describe)("schema validation", () => {
208
+ (0, vitest_1.it)("should accept empty input (no pagination)", () => {
209
+ const input = {};
210
+ const result = schemas_js_1.ProjectListInputSchema.parse(input);
211
+ (0, vitest_1.expect)(result.page).toBeUndefined();
212
+ (0, vitest_1.expect)(result.pageSize).toBeUndefined();
213
+ });
214
+ (0, vitest_1.it)("should accept valid pagination input", () => {
215
+ const input = { page: 2, pageSize: 25 };
216
+ const result = schemas_js_1.ProjectListInputSchema.parse(input);
217
+ (0, vitest_1.expect)(result.page).toBe(2);
218
+ (0, vitest_1.expect)(result.pageSize).toBe(25);
219
+ });
220
+ (0, vitest_1.it)("should reject non-positive page", () => {
221
+ const input = { page: 0 };
222
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectListInputSchema.parse(input)).toThrow(zod_1.ZodError);
223
+ });
224
+ (0, vitest_1.it)("should reject pageSize exceeding max", () => {
225
+ const input = { pageSize: 101 };
226
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectListInputSchema.parse(input)).toThrow(zod_1.ZodError);
227
+ });
228
+ });
229
+ (0, vitest_1.describe)("mapToUpstream", () => {
230
+ (0, vitest_1.it)("should produce correct GET call with pagination query params", () => {
231
+ const tool = findTool(TOOL_NAME);
232
+ const input = { page: 2, pageSize: 10 };
233
+ const result = tool.mapToUpstream(input);
234
+ (0, vitest_1.expect)(result.method).toBe("GET");
235
+ (0, vitest_1.expect)(result.path).toBe(`${test_fixtures_js_1.TEST_UPSTREAM_PREFIX}/projects`);
236
+ (0, vitest_1.expect)(result.queryParams).toEqual({
237
+ page: 2,
238
+ pageSize: 10,
239
+ });
240
+ });
241
+ (0, vitest_1.it)("should produce GET call with undefined pagination when not provided", () => {
242
+ const tool = findTool(TOOL_NAME);
243
+ const input = {};
244
+ const result = tool.mapToUpstream(input);
245
+ (0, vitest_1.expect)(result.method).toBe("GET");
246
+ (0, vitest_1.expect)(result.path).toBe(`${test_fixtures_js_1.TEST_UPSTREAM_PREFIX}/projects`);
247
+ (0, vitest_1.expect)(result.queryParams).toEqual({
248
+ page: undefined,
249
+ pageSize: undefined,
250
+ });
251
+ });
252
+ });
253
+ });
254
+ // =============================================================================
255
+ // qa_project_delete
256
+ // =============================================================================
257
+ (0, vitest_1.describe)("qa_project_delete", () => {
258
+ const TOOL_NAME = "qa_project_delete";
259
+ (0, vitest_1.describe)("schema validation", () => {
260
+ (0, vitest_1.it)("should accept valid input with projectId", () => {
261
+ const input = { projectId: test_fixtures_js_1.TEST_PROJECT_ID };
262
+ const result = schemas_js_1.ProjectDeleteInputSchema.parse(input);
263
+ (0, vitest_1.expect)(result.projectId).toBe(test_fixtures_js_1.TEST_PROJECT_ID);
264
+ });
265
+ (0, vitest_1.it)("should reject input with empty projectId", () => {
266
+ const input = { projectId: "" };
267
+ (0, vitest_1.expect)(() => schemas_js_1.ProjectDeleteInputSchema.parse(input)).toThrow(zod_1.ZodError);
268
+ });
269
+ });
270
+ (0, vitest_1.describe)("mapToUpstream", () => {
271
+ (0, vitest_1.it)("should produce correct DELETE call", () => {
272
+ const tool = findTool(TOOL_NAME);
273
+ const input = { projectId: test_fixtures_js_1.TEST_PROJECT_ID };
274
+ const result = tool.mapToUpstream(input);
275
+ (0, vitest_1.expect)(result.method).toBe("DELETE");
276
+ (0, vitest_1.expect)(result.path).toBe(`${test_fixtures_js_1.TEST_UPSTREAM_PREFIX}/projects/${test_fixtures_js_1.TEST_PROJECT_ID}`);
277
+ (0, vitest_1.expect)(result.body).toBeUndefined();
278
+ });
279
+ });
280
+ });
281
+ //# sourceMappingURL=project-tools.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-tools.test.js","sourceRoot":"","sources":["../../../../src/__tests__/tools/project-tools.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tests for Recommendation MCP tools (no side effects).
3
+ * Covers: qa_recommend_schedule, qa_recommend_cicd_setup
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=recommendation-tools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendation-tools.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/tools/recommendation-tools.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ /**
3
+ * Tests for Recommendation MCP tools (no side effects).
4
+ * Covers: qa_recommend_schedule, qa_recommend_cicd_setup
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const vitest_1 = require("vitest");
8
+ const zod_1 = require("zod");
9
+ const schemas_js_1 = require("../../tools/schemas.js");
10
+ const tool_registry_js_1 = require("../../tools/tool-registry.js");
11
+ const test_fixtures_js_1 = require("../helpers/test-fixtures.js");
12
+ // =============================================================================
13
+ // Helper
14
+ // =============================================================================
15
+ /**
16
+ * Find a tool by name from the registry.
17
+ * @param name - Tool name to find.
18
+ * @returns The tool definition.
19
+ */
20
+ function findTool(name) {
21
+ const tool = tool_registry_js_1.allTools.find((t) => t.name === name);
22
+ if (!tool) {
23
+ throw new Error(`Tool '${name}' not found in registry`);
24
+ }
25
+ return tool;
26
+ }
27
+ // =============================================================================
28
+ // qa_recommend_schedule
29
+ // =============================================================================
30
+ (0, vitest_1.describe)("qa_recommend_schedule", () => {
31
+ const TOOL_NAME = "qa_recommend_schedule";
32
+ (0, vitest_1.describe)("schema validation", () => {
33
+ (0, vitest_1.it)("should accept empty input (all fields optional)", () => {
34
+ const input = {};
35
+ const result = schemas_js_1.RecommendScheduleInputSchema.parse(input);
36
+ (0, vitest_1.expect)(result.projectId).toBeUndefined();
37
+ (0, vitest_1.expect)(result.testFrequency).toBeUndefined();
38
+ (0, vitest_1.expect)(result.timezone).toBeUndefined();
39
+ });
40
+ (0, vitest_1.it)("should accept valid input with all optional fields", () => {
41
+ const input = {
42
+ projectId: test_fixtures_js_1.TEST_PROJECT_ID,
43
+ testFrequency: "daily",
44
+ timezone: "America/New_York",
45
+ };
46
+ const result = schemas_js_1.RecommendScheduleInputSchema.parse(input);
47
+ (0, vitest_1.expect)(result.projectId).toBe(test_fixtures_js_1.TEST_PROJECT_ID);
48
+ (0, vitest_1.expect)(result.testFrequency).toBe("daily");
49
+ (0, vitest_1.expect)(result.timezone).toBe("America/New_York");
50
+ });
51
+ (0, vitest_1.it)("should accept valid testFrequency values", () => {
52
+ for (const freq of ["daily", "weekly", "onDemand"]) {
53
+ const result = schemas_js_1.RecommendScheduleInputSchema.parse({
54
+ testFrequency: freq,
55
+ });
56
+ (0, vitest_1.expect)(result.testFrequency).toBe(freq);
57
+ }
58
+ });
59
+ (0, vitest_1.it)("should reject invalid testFrequency value", () => {
60
+ const input = {
61
+ testFrequency: "hourly",
62
+ };
63
+ (0, vitest_1.expect)(() => schemas_js_1.RecommendScheduleInputSchema.parse(input)).toThrow(zod_1.ZodError);
64
+ });
65
+ });
66
+ (0, vitest_1.describe)("mapToUpstream", () => {
67
+ (0, vitest_1.it)("should throw RECOMMENDATION_ONLY since this is a static tool", () => {
68
+ const tool = findTool(TOOL_NAME);
69
+ (0, vitest_1.expect)(() => tool.mapToUpstream({})).toThrow("RECOMMENDATION_ONLY");
70
+ });
71
+ });
72
+ (0, vitest_1.describe)("mapFromUpstream", () => {
73
+ (0, vitest_1.it)("should return static schedule recommendations", () => {
74
+ const tool = findTool(TOOL_NAME);
75
+ const mockResponse = { statusCode: 200, data: {}, headers: {} };
76
+ const result = tool.mapFromUpstream(mockResponse);
77
+ const typedResult = result;
78
+ (0, vitest_1.expect)(typedResult.recommendations).toBeDefined();
79
+ (0, vitest_1.expect)(typedResult.recommendations.length).toBeGreaterThan(0);
80
+ (0, vitest_1.expect)(typedResult.recommendations[0].title).toBe("Nightly Regression Tests");
81
+ });
82
+ });
83
+ });
84
+ // =============================================================================
85
+ // qa_recommend_cicd_setup
86
+ // =============================================================================
87
+ (0, vitest_1.describe)("qa_recommend_cicd_setup", () => {
88
+ const TOOL_NAME = "qa_recommend_cicd_setup";
89
+ (0, vitest_1.describe)("schema validation", () => {
90
+ (0, vitest_1.it)("should accept empty input (all fields optional)", () => {
91
+ const input = {};
92
+ const result = schemas_js_1.RecommendCicdSetupInputSchema.parse(input);
93
+ (0, vitest_1.expect)(result.repositoryProvider).toBeUndefined();
94
+ (0, vitest_1.expect)(result.cadence).toBeUndefined();
95
+ });
96
+ (0, vitest_1.it)("should accept valid input with all fields", () => {
97
+ const input = {
98
+ repositoryProvider: "github",
99
+ cadence: "onPullRequest",
100
+ projectId: test_fixtures_js_1.TEST_PROJECT_ID,
101
+ };
102
+ const result = schemas_js_1.RecommendCicdSetupInputSchema.parse(input);
103
+ (0, vitest_1.expect)(result.repositoryProvider).toBe("github");
104
+ (0, vitest_1.expect)(result.cadence).toBe("onPullRequest");
105
+ });
106
+ (0, vitest_1.it)("should accept all valid repositoryProvider values", () => {
107
+ for (const provider of ["github", "azureDevOps", "gitlab", "other"]) {
108
+ const result = schemas_js_1.RecommendCicdSetupInputSchema.parse({
109
+ repositoryProvider: provider,
110
+ });
111
+ (0, vitest_1.expect)(result.repositoryProvider).toBe(provider);
112
+ }
113
+ });
114
+ (0, vitest_1.it)("should accept all valid cadence values", () => {
115
+ for (const cadence of ["onPullRequest", "nightly", "onDemand"]) {
116
+ const result = schemas_js_1.RecommendCicdSetupInputSchema.parse({
117
+ cadence: cadence,
118
+ });
119
+ (0, vitest_1.expect)(result.cadence).toBe(cadence);
120
+ }
121
+ });
122
+ (0, vitest_1.it)("should reject invalid repositoryProvider", () => {
123
+ const input = {
124
+ repositoryProvider: "bitbucket",
125
+ };
126
+ (0, vitest_1.expect)(() => schemas_js_1.RecommendCicdSetupInputSchema.parse(input)).toThrow(zod_1.ZodError);
127
+ });
128
+ (0, vitest_1.it)("should reject invalid cadence value", () => {
129
+ const input = {
130
+ cadence: "everyMinute",
131
+ };
132
+ (0, vitest_1.expect)(() => schemas_js_1.RecommendCicdSetupInputSchema.parse(input)).toThrow(zod_1.ZodError);
133
+ });
134
+ });
135
+ (0, vitest_1.describe)("mapToUpstream", () => {
136
+ (0, vitest_1.it)("should throw RECOMMENDATION_ONLY since this is a static tool", () => {
137
+ const tool = findTool(TOOL_NAME);
138
+ (0, vitest_1.expect)(() => tool.mapToUpstream({})).toThrow("RECOMMENDATION_ONLY");
139
+ });
140
+ });
141
+ (0, vitest_1.describe)("mapFromUpstream", () => {
142
+ (0, vitest_1.it)("should return GitHub Actions recommendation for github provider", () => {
143
+ const tool = findTool(TOOL_NAME);
144
+ const mockResponse = { statusCode: 200, data: {}, headers: {} };
145
+ const input = {
146
+ repositoryProvider: "github",
147
+ cadence: "onPullRequest",
148
+ };
149
+ const result = tool.mapFromUpstream(mockResponse, input);
150
+ const typedResult = result;
151
+ (0, vitest_1.expect)(typedResult.recommendations).toBeDefined();
152
+ (0, vitest_1.expect)(typedResult.recommendations.length).toBeGreaterThan(0);
153
+ const githubRec = typedResult.recommendations.find((r) => r.title.includes("GitHub"));
154
+ (0, vitest_1.expect)(githubRec).toBeDefined();
155
+ });
156
+ (0, vitest_1.it)("should return Azure DevOps recommendation for azureDevOps provider", () => {
157
+ const tool = findTool(TOOL_NAME);
158
+ const mockResponse = { statusCode: 200, data: {}, headers: {} };
159
+ const input = {
160
+ repositoryProvider: "azureDevOps",
161
+ cadence: "nightly",
162
+ };
163
+ const result = tool.mapFromUpstream(mockResponse, input);
164
+ const typedResult = result;
165
+ const azureRec = typedResult.recommendations.find((r) => r.title.includes("Azure DevOps"));
166
+ (0, vitest_1.expect)(azureRec).toBeDefined();
167
+ });
168
+ (0, vitest_1.it)("should return GitLab recommendation for gitlab provider", () => {
169
+ const tool = findTool(TOOL_NAME);
170
+ const mockResponse = { statusCode: 200, data: {}, headers: {} };
171
+ const input = {
172
+ repositoryProvider: "gitlab",
173
+ cadence: "onPullRequest",
174
+ };
175
+ const result = tool.mapFromUpstream(mockResponse, input);
176
+ const typedResult = result;
177
+ const gitlabRec = typedResult.recommendations.find((r) => r.title.includes("GitLab"));
178
+ (0, vitest_1.expect)(gitlabRec).toBeDefined();
179
+ });
180
+ (0, vitest_1.it)("should return all provider recommendations for 'other' provider", () => {
181
+ const tool = findTool(TOOL_NAME);
182
+ const mockResponse = { statusCode: 200, data: {}, headers: {} };
183
+ const input = {
184
+ repositoryProvider: "other",
185
+ cadence: "onPullRequest",
186
+ };
187
+ const result = tool.mapFromUpstream(mockResponse, input);
188
+ const typedResult = result;
189
+ (0, vitest_1.expect)(typedResult.recommendations.length).toBeGreaterThanOrEqual(3);
190
+ });
191
+ });
192
+ });
193
+ //# sourceMappingURL=recommendation-tools.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recommendation-tools.test.js","sourceRoot":"","sources":["../../../../src/__tests__/tools/recommendation-tools.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Tests for Report MCP tools.
3
+ * Covers: qa_report_stats_summary_get, qa_report_cost_query,
4
+ * qa_report_preferences_upsert, qa_report_final_generate
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=report-tools.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report-tools.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/tools/report-tools.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}