Skip to content

Commit 077ba08

Browse files
committed
Implements setupMcpToolMocks fix in the remaining spec files
1 parent 7cb8ce6 commit 077ba08

File tree

9 files changed

+81
-176
lines changed

9 files changed

+81
-176
lines changed

src/tools/addons.spec.ts

Lines changed: 25 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import {
1616
} from './addons.js';
1717
import { CommandBuilder } from '../utils/command-builder.js';
1818
import { TOOL_COMMAND_MAP } from '../utils/tool-commands.js';
19+
import { setupMcpToolMocks } from '../utils/mcp-tool-mocks.spechelper.js';
1920
import { ZodRawShape } from 'zod';
2021

2122
describe('addons topic tools', () => {
@@ -25,23 +26,12 @@ describe('addons topic tools', () => {
2526
let toolCallback: Function;
2627

2728
beforeEach(() => {
28-
server = sinon.createStubInstance(McpServer);
29-
herokuRepl = sinon.createStubInstance(HerokuREPL);
30-
31-
server.tool.callsFake(
32-
(
33-
_name: string,
34-
_description: string,
35-
_paramsSchema: ZodRawShape,
36-
_annotations: Record<string, unknown>,
37-
callback: (args: any, extra: any) => any
38-
) => {
39-
toolCallback = callback;
40-
return server as any;
41-
}
42-
);
29+
const mocks = setupMcpToolMocks();
30+
server = mocks.server;
31+
herokuRepl = mocks.herokuRepl;
4332

4433
registerListAddonsTool(server, herokuRepl);
34+
toolCallback = mocks.getToolCallback();
4535
});
4636

4737
afterEach(() => {
@@ -96,23 +86,12 @@ describe('addons topic tools', () => {
9686
let toolCallback: Function;
9787

9888
beforeEach(() => {
99-
server = sinon.createStubInstance(McpServer);
100-
herokuRepl = sinon.createStubInstance(HerokuREPL);
101-
102-
server.tool.callsFake(
103-
(
104-
_name: string,
105-
_description: string,
106-
_paramsSchema: ZodRawShape,
107-
_annotations: Record<string, unknown>,
108-
callback: (args: any, extra: any) => any
109-
) => {
110-
toolCallback = callback;
111-
return server as any;
112-
}
113-
);
89+
const mocks = setupMcpToolMocks();
90+
server = mocks.server;
91+
herokuRepl = mocks.herokuRepl;
11492

11593
registerGetAddonInfoTool(server, herokuRepl);
94+
toolCallback = mocks.getToolCallback();
11695
});
11796

11897
afterEach(() => {
@@ -172,23 +151,12 @@ describe('addons topic tools', () => {
172151
let toolCallback: Function;
173152

174153
beforeEach(() => {
175-
server = sinon.createStubInstance(McpServer);
176-
herokuRepl = sinon.createStubInstance(HerokuREPL);
177-
178-
server.tool.callsFake(
179-
(
180-
_name: string,
181-
_description: string,
182-
_paramsSchema: ZodRawShape,
183-
_annotations: Record<string, unknown>,
184-
callback: (args: any, extra: any) => any
185-
) => {
186-
toolCallback = callback;
187-
return server as any;
188-
}
189-
);
154+
const mocks = setupMcpToolMocks();
155+
server = mocks.server;
156+
herokuRepl = mocks.herokuRepl;
190157

191158
registerCreateAddonTool(server, herokuRepl);
159+
toolCallback = mocks.getToolCallback();
192160
});
193161

194162
afterEach(() => {
@@ -265,23 +233,12 @@ describe('addons topic tools', () => {
265233
let toolCallback: Function;
266234

267235
beforeEach(() => {
268-
server = sinon.createStubInstance(McpServer);
269-
herokuRepl = sinon.createStubInstance(HerokuREPL);
270-
271-
server.tool.callsFake(
272-
(
273-
_name: string,
274-
_description: string,
275-
_paramsSchema: ZodRawShape,
276-
_annotations: Record<string, unknown>,
277-
callback: (args: any, extra: any) => any
278-
) => {
279-
toolCallback = callback;
280-
return server as any;
281-
}
282-
);
236+
const mocks = setupMcpToolMocks();
237+
server = mocks.server;
238+
herokuRepl = mocks.herokuRepl;
283239

284240
registerListAddonServicesTool(server, herokuRepl);
241+
toolCallback = mocks.getToolCallback();
285242
});
286243

287244
afterEach(() => {
@@ -319,23 +276,12 @@ describe('addons topic tools', () => {
319276
let toolCallback: Function;
320277

321278
beforeEach(() => {
322-
server = sinon.createStubInstance(McpServer);
323-
herokuRepl = sinon.createStubInstance(HerokuREPL);
324-
325-
server.tool.callsFake(
326-
(
327-
_name: string,
328-
_description: string,
329-
_paramsSchema: ZodRawShape,
330-
_annotations: Record<string, unknown>,
331-
callback: (args: any, extra: any) => any
332-
) => {
333-
toolCallback = callback;
334-
return server as any;
335-
}
336-
);
279+
const mocks = setupMcpToolMocks();
280+
server = mocks.server;
281+
herokuRepl = mocks.herokuRepl;
337282

338283
registerListAddonPlansTool(server, herokuRepl);
284+
toolCallback = mocks.getToolCallback();
339285
});
340286

341287
afterEach(() => {
@@ -376,21 +322,10 @@ describe('addons topic tools', () => {
376322
let toolCallback: Function;
377323

378324
beforeEach(() => {
379-
server = sinon.createStubInstance(McpServer);
380-
herokuRepl = sinon.createStubInstance(HerokuREPL);
381-
382-
server.tool.callsFake(
383-
(
384-
_name: string,
385-
_description: string,
386-
_paramsSchema: ZodRawShape,
387-
_annotations: Record<string, unknown>,
388-
callback: (args: any, extra: any) => any
389-
) => {
390-
toolCallback = callback;
391-
return server as any;
392-
}
393-
);
325+
const mocks = setupMcpToolMocks();
326+
server = mocks.server;
327+
herokuRepl = mocks.herokuRepl;
328+
toolCallback = mocks.getToolCallback();
394329
});
395330

396331
afterEach(() => {

src/tools/apps.spec.ts

Lines changed: 21 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
} from './apps.js';
1515
import { CommandBuilder } from '../utils/command-builder.js';
1616
import { TOOL_COMMAND_MAP } from '../utils/tool-commands.js';
17+
import { setupMcpToolMocks } from '../utils/mcp-tool-mocks.spechelper.js';
1718

1819
describe('apps topic tools', () => {
1920
describe('registerListAppsTool', () => {
@@ -22,15 +23,12 @@ describe('apps topic tools', () => {
2223
let toolCallback: Function;
2324

2425
beforeEach(() => {
25-
server = sinon.createStubInstance(McpServer);
26-
herokuRepl = sinon.createStubInstance(HerokuREPL);
27-
28-
server.tool.callsFake((_, __, ___, ____, callback) => {
29-
toolCallback = callback;
30-
return server;
31-
});
26+
const mocks = setupMcpToolMocks();
27+
server = mocks.server;
28+
herokuRepl = mocks.herokuRepl;
3229

3330
registerListAppsTool(server, herokuRepl);
31+
toolCallback = mocks.getToolCallback();
3432
});
3533

3634
afterEach(() => {
@@ -120,13 +118,10 @@ describe('apps topic tools', () => {
120118
let toolCallback: Function;
121119

122120
beforeEach(() => {
123-
server = sinon.createStubInstance(McpServer);
124-
herokuRepl = sinon.createStubInstance(HerokuREPL);
125-
126-
server.tool.callsFake((name, description, paramsSchema, annotations, callback) => {
127-
toolCallback = callback;
128-
return server;
129-
});
121+
const mocks = setupMcpToolMocks();
122+
server = mocks.server;
123+
herokuRepl = mocks.herokuRepl;
124+
toolCallback = mocks.getToolCallback();
130125

131126
registerGetAppInfoTool(server, herokuRepl);
132127
});
@@ -177,13 +172,10 @@ describe('apps topic tools', () => {
177172
let toolCallback: Function;
178173

179174
beforeEach(() => {
180-
server = sinon.createStubInstance(McpServer);
181-
herokuRepl = sinon.createStubInstance(HerokuREPL);
182-
183-
server.tool.callsFake((name, description, paramsSchema, annotations, callback) => {
184-
toolCallback = callback;
185-
return server;
186-
});
175+
const mocks = setupMcpToolMocks();
176+
server = mocks.server;
177+
herokuRepl = mocks.herokuRepl;
178+
toolCallback = mocks.getToolCallback();
187179

188180
registerCreateAppTool(server, herokuRepl);
189181
});
@@ -274,13 +266,10 @@ describe('apps topic tools', () => {
274266
let toolCallback: Function;
275267

276268
beforeEach(() => {
277-
server = sinon.createStubInstance(McpServer);
278-
herokuRepl = sinon.createStubInstance(HerokuREPL);
279-
280-
server.tool.callsFake((name, description, paramsSchema, annotations, callback) => {
281-
toolCallback = callback;
282-
return server;
283-
});
269+
const mocks = setupMcpToolMocks();
270+
server = mocks.server;
271+
herokuRepl = mocks.herokuRepl;
272+
toolCallback = mocks.getToolCallback();
284273

285274
registerRenameAppTool(server, herokuRepl);
286275
});
@@ -322,13 +311,10 @@ describe('apps topic tools', () => {
322311
let toolCallback: Function;
323312

324313
beforeEach(() => {
325-
server = sinon.createStubInstance(McpServer);
326-
herokuRepl = sinon.createStubInstance(HerokuREPL);
327-
328-
server.tool.callsFake((name, description, paramsSchema, annotations, callback) => {
329-
toolCallback = callback;
330-
return server;
331-
});
314+
const mocks = setupMcpToolMocks();
315+
server = mocks.server;
316+
herokuRepl = mocks.herokuRepl;
317+
toolCallback = mocks.getToolCallback();
332318
});
333319

334320
afterEach(() => {

src/tools/data.spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,18 @@ import {
1111
} from './data.js';
1212
import { expect } from 'chai';
1313
import sinon from 'sinon';
14+
import { setupMcpToolMocks } from '../utils/mcp-tool-mocks.spechelper.js';
1415

1516
describe('PostgreSQL Tools', () => {
1617
let server: sinon.SinonStubbedInstance<McpServer>;
1718
let herokuRepl: sinon.SinonStubbedInstance<HerokuREPL>;
1819
let toolCallback: Function;
1920

2021
beforeEach(() => {
21-
server = sinon.createStubInstance(McpServer);
22-
herokuRepl = sinon.createStubInstance(HerokuREPL);
23-
24-
server.tool.callsFake((_name, _description, _schema, callback) => {
25-
toolCallback = callback;
26-
return server;
27-
});
22+
const mocks = setupMcpToolMocks();
23+
server = mocks.server;
24+
herokuRepl = mocks.herokuRepl;
25+
toolCallback = mocks.getToolCallback();
2826
});
2927

3028
afterEach(() => {

src/tools/logs.spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { HerokuREPL } from '../repl/heroku-cli-repl.js';
55
import { getAppGetAppLogsOptionsSchema, registerGetAppLogsTool } from './logs.js';
66
import { CommandBuilder } from '../utils/command-builder.js';
77
import { TOOL_COMMAND_MAP } from '../utils/tool-commands.js';
8+
import { setupMcpToolMocks } from '../utils/mcp-tool-mocks.spechelper.js';
89

910
describe('logs topic tools', () => {
1011
describe('registerGetAppLogsTool', () => {
@@ -13,13 +14,10 @@ describe('logs topic tools', () => {
1314
let toolCallback: Function;
1415

1516
beforeEach(() => {
16-
server = sinon.createStubInstance(McpServer);
17-
herokuRepl = sinon.createStubInstance(HerokuREPL);
18-
19-
server.tool.callsFake((_name, _description, _schema, callback) => {
20-
toolCallback = callback;
21-
return server;
22-
});
17+
const mocks = setupMcpToolMocks();
18+
server = mocks.server;
19+
herokuRepl = mocks.herokuRepl;
20+
toolCallback = mocks.getToolCallback();
2321

2422
registerGetAppLogsTool(server, herokuRepl);
2523
});

src/tools/maintenance.spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,18 @@ import { TOOL_COMMAND_MAP } from '../utils/tool-commands.js';
44
import { registerMaintenanceOnTool, registerMaintenanceOffTool } from './maintenance.js';
55
import { expect } from 'chai';
66
import sinon from 'sinon';
7+
import { setupMcpToolMocks } from '../utils/mcp-tool-mocks.spechelper.js';
78

89
describe('Maintenance Tools', () => {
910
let server: sinon.SinonStubbedInstance<McpServer>;
1011
let herokuRepl: sinon.SinonStubbedInstance<HerokuREPL>;
1112
let toolCallback: Function;
1213

1314
beforeEach(() => {
14-
server = sinon.createStubInstance(McpServer);
15-
herokuRepl = sinon.createStubInstance(HerokuREPL);
16-
17-
server.tool.callsFake((_name, _description, _schema, callback) => {
18-
toolCallback = callback;
19-
return server;
20-
});
15+
const mocks = setupMcpToolMocks();
16+
server = mocks.server;
17+
herokuRepl = mocks.herokuRepl;
18+
toolCallback = mocks.getToolCallback();
2119
});
2220

2321
afterEach(() => {

src/tools/pipelines.spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,18 @@ import {
1010
} from './pipelines.js';
1111
import { expect } from 'chai';
1212
import sinon from 'sinon';
13+
import { setupMcpToolMocks } from '../utils/mcp-tool-mocks.spechelper.js';
1314

1415
describe('Pipeline Tools', () => {
1516
let server: sinon.SinonStubbedInstance<McpServer>;
1617
let herokuRepl: sinon.SinonStubbedInstance<HerokuREPL>;
1718
let toolCallback: Function;
1819

1920
beforeEach(() => {
20-
server = sinon.createStubInstance(McpServer);
21-
herokuRepl = sinon.createStubInstance(HerokuREPL);
22-
23-
server.tool.callsFake((_name, _description, _schema, callback) => {
24-
toolCallback = callback;
25-
return server;
26-
});
21+
const mocks = setupMcpToolMocks();
22+
server = mocks.server;
23+
herokuRepl = mocks.herokuRepl;
24+
toolCallback = mocks.getToolCallback();
2725
});
2826

2927
afterEach(() => {

0 commit comments

Comments
 (0)