jev-mock

A mock TypeSafe System One endpoint for tests: HTTP/2 over TLS on loopback, a throwaway CA (ca_file()), every request recorded, answers from a closure (Reply). It knows nothing about Postgres, so any Jev client can test against it.

replay::Replay answers from a recorded fixture instead, keyed by the exact request bytes (replay::Fixture, one JSON file of request and response lists). A request the fixture lacks is answered with a 400 that names it, and assert_complete (also run on drop) fails the test.

forward::Forward produces those fixtures: it passes each request to a real endpoint with the API key and records the answer (fixture()). It needs a multi-threaded tokio runtime. exchange(body) sends and records a request built elsewhere, without the mock. tools/record-gates --send uses both.