Testing
Connectum supports two complementary testing layers. Use TypeScript tests for fast handler and transport feedback, then scenario tests for the deployed protocol boundary.
Choose a layer
| Question | Recommended surface |
|---|---|
| Does a handler or interceptor return the expected value/error? | @connectum/testing with an in-process server/client |
| Do service-catalog calls resolve without a network listener? | In-process transport |
| Does a running service expose correct gRPC, Connect, health, auth, TLS, or streaming behavior? | runn |
| Do you need Go plugins or JUnit-oriented scenario output? | scenarigo |
Recommended path
- Test handler and middleware decisions in process.
- Start the real service with its generated proto contract.
- Exercise one successful call and the important failure paths through
runn. - Add deployment-specific probe or TLS scenarios only where that boundary matters.
Scenario tests catch serialization, validation, interceptor-order, reflection, and health-endpoint integration that isolated unit tests cannot. They should not repeat every business-rule case already covered in TypeScript.
See the complete runn example suite for the executable end-to-end shape. Exact testing helpers remain in the @connectum/testing API; shared low-level fixtures are separated in @connectum/test-fixtures.