Skip to content

Commit b160906

Browse files
committed
fix: tests
1 parent b7e04f3 commit b160906

File tree

2 files changed

+36
-16
lines changed

2 files changed

+36
-16
lines changed

extensions/cli/src/configEnhancer.test.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,12 @@ describe("ConfigEnhancer", () => {
196196
});
197197

198198
it("should prepend MCPs from --mcp flag", async () => {
199-
// Mock loadPackagesFromHub to return test MCPs
200-
const { loadPackagesFromHub } = await import("./hubLoader.js");
201-
(loadPackagesFromHub as any).mockResolvedValueOnce([
202-
{ name: "New-MCP", command: "new-mcp" },
203-
]);
199+
// Mock loadPackageFromHub to return test MCP (singular call for each MCP)
200+
const { loadPackageFromHub } = await import("./hubLoader.js");
201+
(loadPackageFromHub as any).mockResolvedValueOnce({
202+
name: "New-MCP",
203+
command: "new-mcp",
204+
});
204205

205206
// Set up existing MCPs in config
206207
mockConfig.mcpServers = [{ name: "Existing-MCP", command: "existing-mcp" }];

extensions/cli/src/services/workflow-integration.test.ts

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -554,11 +554,19 @@ describe("Workflow Integration Tests", () => {
554554
tools: "owner/mcp1, another/mcp2:specific_tool",
555555
};
556556

557-
mockLoadPackageFromHub.mockResolvedValue(workflowWithTools);
558-
mockLoadPackagesFromHub.mockResolvedValue([
559-
{ name: "mcp1" },
560-
{ name: "mcp2" },
561-
]);
557+
// Clear the default mock and setup specific mocks
558+
mockLoadPackageFromHub.mockReset();
559+
// First call loads the workflow file
560+
mockLoadPackageFromHub.mockResolvedValueOnce(workflowWithTools);
561+
// Second call loads the workflow model
562+
mockLoadPackageFromHub.mockResolvedValueOnce({
563+
name: "gpt-4-workflow",
564+
provider: "openai",
565+
});
566+
// Third call loads mcp1
567+
mockLoadPackageFromHub.mockResolvedValueOnce({ name: "mcp1" });
568+
// Fourth call loads mcp2
569+
mockLoadPackageFromHub.mockResolvedValueOnce({ name: "mcp2" });
562570

563571
await workflowService.initialize("owner/workflow");
564572

@@ -573,6 +581,7 @@ describe("Workflow Integration Tests", () => {
573581
);
574582

575583
expect(enhancedConfig.mcpServers).toHaveLength(3);
584+
// MCPs are prepended in the order they are loaded
576585
expect(enhancedConfig.mcpServers?.[0]).toEqual({ name: "mcp1" });
577586
expect(enhancedConfig.mcpServers?.[1]).toEqual({ name: "mcp2" });
578587
expect(enhancedConfig.mcpServers?.[2]).toEqual({ name: "existing-mcp" });
@@ -584,7 +593,8 @@ describe("Workflow Integration Tests", () => {
584593
tools: undefined,
585594
};
586595

587-
mockLoadPackageFromHub.mockResolvedValue(workflowWithoutTools);
596+
mockLoadPackageFromHub.mockReset();
597+
mockLoadPackageFromHub.mockResolvedValueOnce(workflowWithoutTools);
588598
await workflowService.initialize("owner/workflow");
589599

590600
const baseConfig = {
@@ -607,13 +617,22 @@ describe("Workflow Integration Tests", () => {
607617
tools: "owner/mcp1, owner/mcp1:tool1, owner/mcp1:tool2",
608618
};
609619

610-
mockLoadPackageFromHub.mockResolvedValue(workflowWithDuplicateTools);
611-
mockLoadPackagesFromHub.mockResolvedValue([{ name: "mcp1" }]);
620+
// Clear the default mock and setup specific mocks
621+
mockLoadPackageFromHub.mockReset();
622+
// First call loads the workflow file
623+
mockLoadPackageFromHub.mockResolvedValueOnce(workflowWithDuplicateTools);
624+
// Second call loads the workflow model
625+
mockLoadPackageFromHub.mockResolvedValueOnce({
626+
name: "gpt-4-workflow",
627+
provider: "openai",
628+
});
629+
// Third call: The parseWorkflowTools will extract only unique MCP servers, so only one loadPackageFromHub call
630+
mockLoadPackageFromHub.mockResolvedValueOnce({ name: "mcp1" });
612631

613632
await workflowService.initialize("owner/workflow");
614633

615634
const baseConfig = {
616-
mcpServers: [{ name: "mcp1" }], // Already exists
635+
mcpServers: [{ name: "existing-mcp" }], // Changed to avoid confusion
617636
};
618637

619638
const enhancedConfig = await configEnhancer.enhanceConfig(
@@ -622,10 +641,10 @@ describe("Workflow Integration Tests", () => {
622641
workflowService.getState(),
623642
);
624643

625-
// Should not deduplicate since we simplified the logic
644+
// parseWorkflowTools deduplicates, so we only get mcp1 once
626645
expect(enhancedConfig.mcpServers).toHaveLength(2);
627646
expect(enhancedConfig.mcpServers?.[0]).toEqual({ name: "mcp1" });
628-
expect(enhancedConfig.mcpServers?.[1]).toEqual({ name: "mcp1" });
647+
expect(enhancedConfig.mcpServers?.[1]).toEqual({ name: "existing-mcp" });
629648
});
630649
});
631650
});

0 commit comments

Comments
 (0)