Files
gemini-cli/packages/test-utils/GEMINI.md

69 lines
1.9 KiB
Markdown

# Gemini CLI Test Utils (`@google/gemini-cli-test-utils`)
Shared test utilities used across the monorepo. This is a private package — not
published to npm.
## Key Modules
- `src/test-rig.ts`: The primary test rig for spinning up end-to-end CLI
sessions with mock responses.
- `src/file-system-test-helpers.ts`: Helpers for creating temporary file system
fixtures.
- `src/mock-utils.ts`: Common mock utilities.
- `src/test-mcp-server.ts`: Helper for building test MCP servers for tests.
- `src/test-mcp-server-template.mjs`: Generic template script for running
isolated MCP processes.
## Test MCP Servers
The `TestRig` provides a fully isolated, compliant way to test tool triggers and
workflows using local test MCP servers. This isolates your tests from live API
endpoints and rate-limiting.
### Usage
1. **Programmatic Builder:**
```typescript
import { TestMcpServerBuilder } from '@google/gemini-cli-test-utils';
const builder = new TestMcpServerBuilder('weather-server').addTool(
'get_weather',
'Get weather',
'It is rainy',
);
rig.addTestMcpServer('weather-server', builder.build());
```
2. **Predefined configurations via JSON:** Place a configuration file in
`packages/test-utils/assets/test-servers/google-workspace.json` and load it
by title:
```typescript
rig.addTestMcpServer('workspace-server', 'google-workspace');
```
**JSON Format Structure (`TestMcpConfig`):**
```json
{
"name": "string (Fallback server name)",
"tools": [
{
"name": "string (Tool execution name)",
"description": "string (Helpful summary for router)",
"inputSchema": {
"type": "object",
"properties": { ... }
},
"response": "string | object (The forced reply payload)"
}
]
}
```
## Usage
Import from `@google/gemini-cli-test-utils` in test files across the monorepo.