Skip to content

test: cover the sub-MCP write tools (vault mutations, fleet, growth, track) #160

Description

@BryanFRD

Problem

After the sub-MCP write tools landed (#144 / #149), test coverage did not follow. The only test files in the repo are:

  • packages/mcp-core/src/__tests__/api-client.test.ts
  • packages/mcp-core/src/auth/__tests__/{context,index,oauth}.test.ts
  • packages/mcp/src/tools/__tests__/orgs.test.ts

There are zero tests for any tool in mcp-vault, mcp-fleet, mcp-growth, or mcp-track — including the destructive ones (delete_secret, delete_vault, rotate_secret, activate_release, trigger_agent_run).

(Note: existing issue #70 predates the pivot and references removed tools like events/changelog/config; this issue is specifically about the current sub-MCP write surface.)

Why it matters

These tools build URLs from user input and select per-product base URLs (FLEET_API_URL, GROWTH_API_URL, FerrTrack base). A wrong path, missing encodeURIComponent, wrong HTTP method, or wrong base URL silently hits the wrong API — exactly the class of bug #146 fixed for FerrTrack routing, with no regression test guarding it.

Proposed approach

  • Add per-tool tests that mock apiRequest / fetch and assert: the exact path, HTTP method, base URL, and body for each tool.
  • Cover the destructive tools explicitly (correct method + path + that the success message reflects the id).
  • Include at least one schema-validation rejection case per tool group (e.g. create_secret name regex, revoke_token uuid).

Acceptance criteria

  • Each write tool in mcp-vault / mcp-fleet / mcp-growth / mcp-track has a test asserting method, path, and base URL.
  • Schema rejection is asserted for at least one input per group.
  • Coverage for the */tools/ directories is meaningfully above zero.

Metadata

Metadata

Assignees

No one assigned

    Labels

    testTests added or modified

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions