Skip to content

Commit 2e02b05

Browse files
Change createDeployment to return created deployment name
1 parent 1a3bffa commit 2e02b05

File tree

3 files changed

+26
-15
lines changed

3 files changed

+26
-15
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
"node": "^20.19.0 || ^22.12.0 || >= 23.0.0"
122122
},
123123
"optionalDependencies": {
124-
"@mongodb-js-preview/atlas-local": "^0.0.0-preview.2",
124+
"@mongodb-js-preview/atlas-local": "^0.0.0-preview.3",
125125
"kerberos": "^2.2.2"
126126
}
127127
}

src/tools/atlasLocal/create/createDeployment.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ export class CreateDeploymentTool extends AtlasLocalToolBase {
2424
},
2525
};
2626
// Create the deployment
27-
await client.createDeployment(deploymentOptions);
27+
const deployment = await client.createDeployment(deploymentOptions);
2828

29-
if (deploymentName) {
30-
return {
31-
content: [{ type: "text", text: `Deployment "${deploymentName}" created.` }],
32-
};
33-
}
3429
return {
35-
content: [{ type: "text", text: `Deployment created.` }],
30+
content: [
31+
{
32+
type: "text",
33+
text: `Deployment with container ID "${deployment.containerId}" and name "${deployment.name}" created.`,
34+
},
35+
],
3636
};
3737
}
3838
}

tests/integration/tools/atlas-local/createDeployment.test.ts

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,16 @@ describe("atlas-local-create-deployment", () => {
125125
// Create a deployment
126126
const deploymentName = `test-deployment-${Date.now()}`;
127127
deploymentNamesToCleanup.push(deploymentName);
128-
await integration.mcpClient().callTool({
128+
const createResponse = await integration.mcpClient().callTool({
129129
name: "atlas-local-create-deployment",
130130
arguments: { deploymentName },
131131
});
132132

133+
// Check the response contains the deployment name
134+
const createElements = getResponseElements(createResponse.content);
135+
expect(createElements.length).toBeGreaterThanOrEqual(1);
136+
expect(createElements[0]?.text).toContain(deploymentName);
137+
133138
// List the deployments
134139
const response = await integration.mcpClient().callTool({
135140
name: "atlas-local-list-deployments",
@@ -146,11 +151,21 @@ describe("atlas-local-create-deployment", () => {
146151
await waitUntilMcpClientIsSet(integration.mcpServer(), signal);
147152

148153
// Create a deployment
149-
await integration.mcpClient().callTool({
154+
const createResponse = await integration.mcpClient().callTool({
150155
name: "atlas-local-create-deployment",
151156
arguments: {},
152157
});
153158

159+
// Check the response contains the deployment name
160+
const createElements = getResponseElements(createResponse.content);
161+
expect(createElements.length).toBeGreaterThanOrEqual(1);
162+
163+
// Extract the deployment name from the response
164+
// The name should be in the format local<number>
165+
const deploymentName = createElements[0]?.text.match(/local\d+/)?.[0];
166+
expectDefined(deploymentName);
167+
deploymentNamesToCleanup.push(deploymentName);
168+
154169
// List the deployments
155170
const response = await integration.mcpClient().callTool({
156171
name: "atlas-local-list-deployments",
@@ -160,11 +175,7 @@ describe("atlas-local-create-deployment", () => {
160175
// Check the deployment has been created
161176
const elements = getResponseElements(response.content);
162177
expect(elements.length).toBeGreaterThanOrEqual(1);
163-
164-
// Random name starts with local and a number
165-
const deploymentName = elements[1]?.text.match(/local\d+/)?.[0];
166-
expectDefined(deploymentName);
167-
deploymentNamesToCleanup.push(deploymentName);
178+
expect(elements[1]?.text ?? "").toContain(deploymentName);
168179
expect(elements[1]?.text ?? "").toContain("Running");
169180
});
170181
});

0 commit comments

Comments
 (0)