Skip to content

chore: add arg validation test coverage #82

chore: add arg validation test coverage

chore: add arg validation test coverage #82

Triggered via pull request October 8, 2025 20:18
@blvablva
synchronize #570
args-tests
Status Failure
Total duration 7m 42s
Artifacts 2

code-health.yml

on: pull_request
Matrix: Run MongoDB tests
Run Atlas tests
2m 38s
Run Atlas tests
Report Coverage
42s
Report Coverage
Fit to window
Zoom out
Zoom in

Annotations

14 errors and 8 warnings
Run MongoDB tests (macos-latest)
Process completed with exit code 1.
tests/integration/server.test.ts > Server integration test > without atlas > should return positive number of tools and have no atlas tools: tests/integration/server.test.ts#L15
AssertionError: expected 12 to be less than or equal to 0 ❯ tests/integration/server.test.ts:15:43
Run Atlas tests
Process completed with exit code 1.
tests/integration/tools/atlas/clusters.test.ts > clusters > with project > atlas-connect-cluster: src/common/atlas/apiClientError.ts#L31
ApiClientError: [404 Not Found] error calling Atlas API: Not Found; No cluster named ClusterTest-68e6c799f84502462b5ee26c exists in group 68e6c79a6c3035253f426af4. ❯ Function.fromError src/common/atlas/apiClientError.ts:31:16 ❯ ApiClient.getCluster src/common/atlas/apiClient.ts:427:34 ❯ waitCluster tests/integration/tools/atlas/clusters.test.ts:58:25 ❯ tests/integration/tools/atlas/clusters.test.ts:195:17 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { response: { size: +0, constructor: 'Function<Response>', type: 'default', url: 'https://cloud-dev.mongodb.com/api/atlas/v2/groups/68e6c79a6c3035253f426af4/clusters/ClusterTest-68e6c799f84502462b5ee26c', status: 404, ok: false, redirected: false, statusText: 'Not Found', headers: { constructor: 'Function<Headers>', toString: 'Function<toString>', get: 'Function<get>', forEach: 'Function<forEach>', values: 'Function<values>', entries: 'Function<entries>', raw: 'Function<raw>', size: '<unserializable>: Value of "this" must be of type URLSearchParams', append: 'Function<anonymous>', delete: 'Function<anonymous>', getAll: 'Function<anonymous>', has: 'Function<anonymous>', set: 'Function<anonymous>', sort: 'Function<sort>', keys: 'Function<anonymous>' }, highWaterMark: 16384, clone: 'Function<clone>', body: { _events: { close: [ 'Function<anonymous>', 'Function<anonymous>', 'Function<onclose>' ], error: [ 'Function<anonymous>', 'Function<onerror>' ], prefinish: 'Function<prefinish>', finish: 'Function<onfinish>', drain: undefined, data: undefined, end: 'Function<onend>', readable: 'Function<next>', unpipe: undefined }, _readableState: { highWaterMark: 65536, buffer: [], bufferIndex: +0, length: +0, pipes: [], awaitDrainWriters: null, constructor: 'Function<ReadableState>', objectMode: false, ended: true, endEmitted: true, reading: false, constructed: true, sync: false, needReadable: false, emittedReadable: false, readableListening: true, resumeScheduled: false, errorEmitted: false, emitClose: true, autoDestroy: true, destroyed: true, closed: true, closeEmitted: true, multiAwaitDrain: false, readingMore: false, dataEmitted: true, errored: null, defaultEncoding: 'utf8', decoder: null, encoding: null, flowing: false, pipesCount: +0, paused: false }, _writableState: { highWaterMark: 65536, length: +0, corked: +0, onwrite: 'Function<bound onwrite>', writelen: +0, bufferedIndex: +0, pendingcb: +0, constructor: 'Function<WritableState>', objectMode: false, finalCalled: true, needDrain: false, ending: true, ended: true, finished: true, destroyed: true, decodeStrings: true, writing: false, sync: false, bufferProcessing: false, constructed: true, prefinished: true, errorEmitted: false, emitClose: true, autoDestroy: true, closed: true, closeEmitted: true, allBuffers: true, allNoop: true, errored: null, writable: undefined, defaultEncoding: 'utf8', writecb: 'Function<nop>', afterWriteTickInfo: null, buffered: [], getBuffer: 'Function<getBuffer>', bufferedRequestCount: +0 }, allowHalfOpen: true, _maxListeners: undefined, _eventsCount: 6, constructor: 'Function<PassThrough>', _transform: 'Function<anonymous>', _final: 'Function<final>', _write: 'Function<anonymous>', _read: 'Function<anonymous>', write: 'Function<anonymous>', cork: 'Function<anonymous>', uncork: 'Function<anonymous>', setDefaultEncoding: 'Function<setDefaultEncoding>', _writev: null, end: 'Function<anonymous>', destroy: 'Function<anonymous>', writable: false, writableHighWaterMark: 65536, writableObjectMode: false, writableBuffer: [], writableLength: +0, writableFinished: true, writableCorked: +0, writableEnded: true, writableNeedDrain: false, destroyed: true, _undestroy: 'Function<undestroy>', _destroy: 'Function<anonymous>', push: 'Function<anonymous>', unshift: 'Function<anonymous>', isPaused: 'Function<anonymous>', setEncoding: 'Function<anonymous>', read: 'Function<anonymous>', pipe: 'Function<anonymous>', unpipe: 'Function<anonymous>', on: 'Function<anonymous>', addListener: 'Function<anonymous>', removeListener: 'Function<anonymous>', off: 'Function<anonymous>', removeAllListeners: 'Function<anonymous>', resume
tests/integration/tools/atlas/clusters.test.ts > clusters > with project > atlas-list-clusters > returns clusters by project: tests/integration/tools/atlas/clusters.test.ts#L181
AssertionError: expected [ { type: 'text', …(1) } ] to have a length of 2 but got 1 - Expected + Received - 2 + 1 ❯ tests/integration/tools/atlas/clusters.test.ts:181:34
tests/integration/tools/atlas/clusters.test.ts > clusters > with project > atlas-inspect-cluster > returns cluster data: tests/integration/tools/atlas/clusters.test.ts#L156
AssertionError: expected [ { type: 'text', …(1) } ] to have a length of 2 but got 1 - Expected + Received - 2 + 1 ❯ tests/integration/tools/atlas/clusters.test.ts:156:34
tests/integration/tools/atlas/clusters.test.ts > clusters > with project > atlas-create-free-cluster > should create a free cluster and add current IP to access list: tests/integration/inMemoryTransport.ts#L24
McpError: MCP error -32602: MCP error -32602: Invalid arguments for tool atlas-create-free-cluster: [ { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "clusterName" ], "message": "Required" } ] ❯ Client._onresponse node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:450:27 ❯ InMemoryTransport._transport.onmessage node_modules/@modelcontextprotocol/sdk/src/shared/protocol.ts:295:22 ❯ Object.write tests/integration/inMemoryTransport.ts:24:44 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { code: -32602, data: undefined }
tests/integration/tools/atlas/clusters.test.ts > clusters > with project > atlas-create-free-cluster > should have correct metadata: tests/integration/tools/atlas/clusters.test.ts#L107
AssertionError: expected { projectId: { …(5) }, …(2) } to have property "name" ❯ tests/integration/tools/atlas/clusters.test.ts:107:66
tests/integration/tools/atlas/clusters.test.ts > clusters > with project: src/common/atlas/apiClientError.ts#L31
ApiClientError: [404 Not Found] error calling Atlas API: Not Found; No cluster named ClusterTest-68e6c799f84502462b5ee26c exists in group 68e6c79a6c3035253f426af4. ❯ Function.fromError src/common/atlas/apiClientError.ts:31:16 ❯ ApiClient.deleteCluster src/common/atlas/apiClient.ts:416:34 ❯ deleteCluster tests/integration/tools/atlas/clusters.test.ts:21:5 ❯ tests/integration/tools/atlas/clusters.test.ts:94:17 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { response: { size: +0, constructor: 'Function<Response>', type: 'default', url: 'https://cloud-dev.mongodb.com/api/atlas/v2/groups/68e6c79a6c3035253f426af4/clusters/ClusterTest-68e6c799f84502462b5ee26c', status: 404, ok: false, redirected: false, statusText: 'Not Found', headers: { constructor: 'Function<Headers>', toString: 'Function<toString>', get: 'Function<get>', forEach: 'Function<forEach>', values: 'Function<values>', entries: 'Function<entries>', raw: 'Function<raw>', size: '<unserializable>: Value of "this" must be of type URLSearchParams', append: 'Function<anonymous>', delete: 'Function<anonymous>', getAll: 'Function<anonymous>', has: 'Function<anonymous>', set: 'Function<anonymous>', sort: 'Function<sort>', keys: 'Function<anonymous>' }, highWaterMark: 16384, clone: 'Function<clone>', body: { _events: { close: [ 'Function<anonymous>', 'Function<anonymous>', 'Function<onclose>' ], error: [ 'Function<anonymous>', 'Function<onerror>' ], prefinish: 'Function<prefinish>', finish: 'Function<onfinish>', drain: undefined, data: undefined, end: 'Function<onend>', readable: 'Function<next>', unpipe: undefined }, _readableState: { highWaterMark: 65536, buffer: [], bufferIndex: +0, length: +0, pipes: [], awaitDrainWriters: null, constructor: 'Function<ReadableState>', objectMode: false, ended: true, endEmitted: true, reading: false, constructed: true, sync: false, needReadable: false, emittedReadable: false, readableListening: true, resumeScheduled: false, errorEmitted: false, emitClose: true, autoDestroy: true, destroyed: true, closed: true, closeEmitted: true, multiAwaitDrain: false, readingMore: false, dataEmitted: true, errored: null, defaultEncoding: 'utf8', decoder: null, encoding: null, flowing: false, pipesCount: +0, paused: false }, _writableState: { highWaterMark: 65536, length: +0, corked: +0, onwrite: 'Function<bound onwrite>', writelen: +0, bufferedIndex: +0, pendingcb: +0, constructor: 'Function<WritableState>', objectMode: false, finalCalled: true, needDrain: false, ending: true, ended: true, finished: true, destroyed: true, decodeStrings: true, writing: false, sync: false, bufferProcessing: false, constructed: true, prefinished: true, errorEmitted: false, emitClose: true, autoDestroy: true, closed: true, closeEmitted: true, allBuffers: true, allNoop: true, errored: null, writable: undefined, defaultEncoding: 'utf8', writecb: 'Function<nop>', afterWriteTickInfo: null, buffered: [], getBuffer: 'Function<getBuffer>', bufferedRequestCount: +0 }, allowHalfOpen: true, _maxListeners: undefined, _eventsCount: 6, constructor: 'Function<PassThrough>', _transform: 'Function<anonymous>', _final: 'Function<final>', _write: 'Function<anonymous>', _read: 'Function<anonymous>', write: 'Function<anonymous>', cork: 'Function<anonymous>', uncork: 'Function<anonymous>', setDefaultEncoding: 'Function<setDefaultEncoding>', _writev: null, end: 'Function<anonymous>', destroy: 'Function<anonymous>', writable: false, writableHighWaterMark: 65536, writableObjectMode: false, writableBuffer: [], writableLength: +0, writableFinished: true, writableCorked: +0, writableEnded: true, writableNeedDrain: false, destroyed: true, _undestroy: 'Function<undestroy>', _destroy: 'Function<anonymous>', push: 'Function<anonymous>', unshift: 'Function<anonymous>', isPaused: 'Function<anonymous>', setEncoding: 'Function<anonymous>', read: 'Function<anonymous>', pipe: 'Function<anonymous>', unpipe: 'Function<anonymous>', on: 'Function<anonymous>', addListener: 'Function<anonymous>', removeListener: 'Function<anonymous>', off: 'Function<anonymous>', removeAllListeners: 'Function<anonymous>', res
Run MongoDB tests (ubuntu-latest)
Process completed with exit code 1.
tests/integration/server.test.ts > Server integration test > without atlas > should return positive number of tools and have no atlas tools: tests/integration/server.test.ts#L15
AssertionError: expected 12 to be less than or equal to 0 ❯ tests/integration/server.test.ts:15:43
Run MongoDB tests (windows-latest)
Process completed with exit code 1.
tests/integration/server.test.ts > Server integration test > without atlas > should return positive number of tools and have no atlas tools: tests/integration/server.test.ts#L15
AssertionError: expected 12 to be less than or equal to 0 ❯ tests/integration/server.test.ts:15:43
Report Coverage
Unable to download artifact(s): Artifact not found for name: test-results Please ensure that your artifact is not expired and the artifact was uploaded using a compatible version of toolkit/upload-artifact. For more information, visit the GitHub Artifacts FAQ: https://github.com/actions/toolkit/blob/main/packages/artifact/docs/faq.md
Run Atlas tests
No files were found with the provided path: coverage/lcov.info. No artifacts will be uploaded.
Run Atlas tests
1 added, 0 removed; done.
Run Atlas tests
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
Run Atlas tests
Updating certificates in /etc/ssl/certs...
Run MongoDB tests (ubuntu-latest)
No files were found with the provided path: coverage/lcov.info. No artifacts will be uploaded.
Run MongoDB tests (ubuntu-latest)
1 added, 0 removed; done.
Run MongoDB tests (ubuntu-latest)
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
Run MongoDB tests (ubuntu-latest)
Updating certificates in /etc/ssl/certs...

Artifacts

Produced during runtime
Name Size Digest
run-atlas-tests-permissions-a58b43918e42f12146150146ed47c18b
140 Bytes
sha256:4a1f25386d1e6ff8517915cb3b8eca5fb5b8bb4b6e61bffbd26f309301e2830c
run-tests-permissions-76cf4b62b238baf19828b45d61b2d4c9
140 Bytes
sha256:38e626a4cb11eaa9ac5508dae765e2e95d52213af2eb0bbf75325d4187707c2e