diff --git a/README.md b/README.md index 552aabd..8dfe8e3 100644 --- a/README.md +++ b/README.md @@ -14,11 +14,11 @@ The framework ensures that all language bindings (Go, Python, Rust, etc.) behave ## Architecture ``` -┌─────────────┐ ┌──────────────────┐ -│ Test Runner │────────▶│ Handler Binary │ -│ (Go CLI) │ stdin │ (Go/Rust/etc) │ -│ │◀────────│ │ -└─────────────┘ stdout └──────────────────┘ +┌─────────────┐ ┌───────────────────┐ +│ Test Runner │────────▶│ Handler Binary** │ +│ (Go CLI) │ stdin │ (Go/Rust/etc) │ +│ │◀────────│ │ +└─────────────┘ stdout └───────────────────┘ │ │ │ │ ▼ ▼ @@ -35,19 +35,33 @@ The framework ensures that all language bindings (Go, Python, Rust, etc.) behave 3. [**Test Cases**](./testdata): JSON files defining requests and expected responses 4. [**Mock Handler**](./cmd/mock-handler/main.go): Validates the runner by echoing expected responses from test cases -**Handler binaries** are not hosted in this repository. They must be implemented separately following the [**Handler Specification**](./docs/handler-spec.md) and should: +** **Handler binaries** are not hosted in this repository. They must be implemented separately following the [**Handler Specification**](./docs/handler-spec.md) and should: - Implement the JSON protocol for communication with the test runner - Call the binding API to execute operations - Pin to a specific version/tag of this test repository ## Getting Started -Build and test against the mock handler: +### Testing Your Binding (Custom Handler) + +Test your handler implementation using the test runner: + +```bash +# Build the test runner +make runner + +# Run the test runner against your handler binary +./build/runner --handler +``` + +### Testing the Runner + +Build and test the runner using the mock handler: ```bash # Build both runner and mock handler make build -# Run tests against the mock handler +# Run the test runner against the mock handler make test ```