HomeAPIMockAdaptor

MockAdaptor

An in-memory host bridge for tests, with a call log and controllable host context.

MockAdaptor implements the whole host bridge in memory. A test needs no real host, no iframe, and no window globals.

import { MockAdaptor } from "ng-mcp-ui/testing";

const adaptor = new MockAdaptor({
  hostContext: { theme: "dark" },
  toolResponses: { cast_vote: { structuredContent: { total: 4 } } },
});

Usually you do not construct it directly. provideMockMcpUi() builds one and returns it with the matching providers.

Constructor arguments

Field Type Purpose
hostContext Partial<HostContext> Seed values for any subset of the keys. Unset keys take a default.
toolResponses Record<string, MockToolResponse> A canned response for each tool name.
serverUrl string The value bound to MCP_SERVER_URL. The default is "".

toolResponses

A MockToolResponse is a full CallToolResponse, or just the structuredContent object. The short form is usually enough.

toolResponses: {
  cast_vote: { total: 4 },                        // short form
  create_poll: { structuredContent: { id: "1" }, isError: false },
}

A callTool for a name that is not listed resolves with an empty success response. Therefore a wrapper still moves to the success state, and you can test that path without listing every tool.

Members

Member Purpose
calls The log of every recorded call.
clearCalls() Empties the log.
pushHostContext(key, value) Pushes a new value for one key and fires its subscribers.

calls

Each entry is { method, args }. method is a bridge method name, or "registerViewTool:dispose" for a teardown.

expect(adaptor.calls).toContainEqual({
  method: "callTool",
  args: ["cast_vote", { option: "a" }],
});

Call clearCalls() between assertions in a long test.

pushHostContext

This is the counterpart of a real host push. It flips the matching signal in every wrapper that subscribes to that key.

adaptor.pushHostContext("theme", "dark");
// every injectLayout() signal now reports the dark theme

Use it to test how a view reacts to a host change, for example a theme switch or a tool result that arrives late.