pi-coding-agent-test
v0.1.1
Published
Deterministic end-to-end testing for Pi Coding Agent extensions, tools, sessions, and TUI output.
Maintainers
Readme
Summary
pi-coding-agent-test runs tests against real Pi instead of mocking it. Pi loads your extensions, runs real tools and hooks, creates sessions, changes files, and renders terminal output.
The test controls the initial prompt and scripted assistant responses. It does not fake tool execution or extension behavior. Each run gets a fresh session and workspace, records artifacts, and can be replayed without starting Pi.
Executable behavior contracts live in ./test/; demo scripts live in ./scripts/.
Scenario settings
PiIntegrationTest supports explicit skills, systemPrompt, and appendSystemPrompt settings. Skills are loaded from the listed files or directories even though ambient skill discovery is disabled for isolated runs.
Installation
Install the test package:
npm install --save-dev pi-coding-agent-testThe package provides the TypeScript API and the pi-test CLI. Use it with Vitest, Jest, Mocha, node:test, Playwright Test, or another Node.js test runner.
Prerequisites
- Node.js 22.19 or newer;
- Pi installed with the
piexecutable available onPATH.
Install optional Pi skills
pi install npm:pi-coding-agent-testRunnable integration tests
From a checkout of this package, run the demonstration integration tests with real Pi:
npm run test:examplesFor the interactive terminal demo, watch a real Pi TUI live until you stop it with Ctrl+C:
npm run demo:liveTo replay the checked-in recording offline:
npm run demo:replay| Test | Covers |
| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------- |
| evaluation-smoke | Isolated workspaces, built-in tools, filesystem effects, and artifacts |
| extensions | Custom extensions, tool selection, and runtime registration |
| raw-tooling-renderer | Stable raw tool-call and tool-result rendering |
| streaming | Streamed text, partial tool-call JSON, and real tool execution |
| native-tui | Pi's native renderer and visible terminal assertions |
| replay | All built-in tools, large TypeScript edits, and offline replay |
