feat(test): end-to-end suite against a full placeholder REST API #6
merged
@chrismichaelps wrote on 2026-10-07
Closes #5.
What it does:
- A replica of the public placeholder REST service written in Pudu (posts, comments, albums, photos, todos, users at the public counts and shapes, nested routes, filters, pagination, sorting, every CRUD verb, thread-safe store, fault and latency injection) under test/Support/Placeholder.
- Four integration suites through the factory and a typed client: contract, every CRUD verb on every resource, resilience (retries, breaker, timeouts, mid-request cancellation, streaming, limits, rotation), and an opt-in live check against jsonplaceholder.typicode.com (PUDU_LIVE=1, out of CI).
- Mid-request cancellation: Transport.Abort closes a request's connection as soon as its token is cancelled (10ms poll), waking a blocked exchange at once; the stub and resilience handler report the caller's own reason.
How it was verified:
- pudu install --locked, pudu check, pudu fmt --check, pudu lint: clean.
- pudu test test: 49/49 suites passed, 501 assertions held (incl. PlaceholderContract 17, PlaceholderCrud 34, PlaceholderResilience 14, PlaceholderLive 1, ShopScenario 7).
- Mutation gate on every touched logic file (Abort, Hop, Stub, Resilience, Defaults): no survivors.
