Inkdown
Start writing

Claude-Code

62 filesยท4 subfolders

Shared Workspace

Claude-Code
codex

11-testing-architecture

Shared from "Claude-Code" on Inkdown

Testing Architecture

Overview

Claude Code has a multi-layered testing strategy that balances unit tests, integration tests, and "VCR" recorded API interactions. Given the complexity of LLM interactions, traditional mocking isn't enough - we need to record and replay actual API responses.

Plain text
0000_start_here_index_and_recommended_reading_order.md
0100_project_overview_tech_stack_runtime_modes_and_folder_map.md
0200_startup_flow_entry_points_and_cold_start_sequence.md
0300_codebase_modules_layers_state_models_and_schemas.md
0400_system_architecture_and_design_rationale.md
0500_interactive_repl_request_flow_end_to_end.md
0600_headless_sdk_and_print_mode_request_flow_end_to_end.md
0700_mcp_integration_connection_and_tool_call_flow.md
0800_external_services_sdks_storage_and_local_dependencies.md
0900_environment_variables_settings_feature_flags_and_failure_modes.md
1000_non_obvious_patterns_gotchas_and_debugging_traps.md
1100_full_codebase_file_inventory_grouped_by_directory.md
kimi
00-overview.md
01-entrypoints.md
02-state-management.md
03-query-system.md
04-tools-system.md
05-tasks-system.md
06-ui-components.md
07-bridge-remote.md
08-services.md
09-skills-plugins.md
10-commands.md
11-testing-architecture.md
12-permission-system.md
13-build-system.md
14-ink-internals.md
15-git-internals.md
16-context-compaction.md
17-vim-mode.md
18-mailbox-notifications.md
19-session-persistence.md
20-hooks-system.md
21-error-recovery.md
README.md
qwen
00-overview.md
01-entry-points.md
02-query-engine.md
03-tools-and-tasks.md
04-commands-and-skills.md
05-state-management.md
06-ink-rendering.md
07-bridge-remote.md
08-mcp-services.md
09-services-overview.md
10-multi-agent.md
11-system-prompt-constants.md
12-tool-interface.md
13-memory-system.md
14-buddy-companion.md
15-keybindings.md
16-stop-hooks.md
17-vim-mode.md
18-upstreamproxy.md
19-cost-tracking-history.md
20-contexts-styles-onboarding.md
21-hooks.md
22-screens.md
tweets-explain
claude-code-memory-analysis.md
compact
memory-system
agentic-architecture

Core Testing Files

Directory/FilePurpose
tests/Test utilities, mocks, setup
tests/mocks/Mock implementations
tests/fixtures/VCR recordings, test data
services/vcr.tsVCR recording/replay
utils/testing/Test helpers
**/__tests__/*.test.tsUnit tests (co-located)

VCR Testing System

VCR (Video Cassette Recorder) captures real API responses and replays them in tests.

How VCR Works
Plain text
VCR Implementation
TypeScript
Using VCR in Tests
TypeScript
VCR Fixtures
JSON

Mock System

Service Mocks
TypeScript
Tool Mocks
TypeScript
Context Mocks
TypeScript

Test Patterns

Unit Test Pattern
TypeScript
Integration Test Pattern
TypeScript
Query Engine Test with VCR
TypeScript

E2E Testing

CLI E2E Tests
TypeScript

Snapshot Testing

TypeScript

Test Data Builders

TypeScript

Running Tests

Bash

Test Isolation

Per-Test State Reset
TypeScript
Test Database/Files
TypeScript

Performance Testing

TypeScript

Key Testing Principles

  1. VCR for Determinism: API responses recorded once, replayed forever
  2. Mocks for Speed: External dependencies mocked for unit tests
  3. E2E for Confidence: Full CLI tests verify end-to-end flow
  4. Snapshots for UI: Visual regression testing with Ink output
  5. Builders for Readability: Factory functions create test data
  6. Isolation for Reliability: Each test starts fresh

Debugging Failed Tests

Bash