case studies
Case Study: Putting an Old Admin Panel Behind AfterGuard
This case uses the examples/legacy-admin folder from the code repository: a small stand-in for a real old admin panel, and the guard.yaml and fixture that ship in every …
case studies
This case uses the examples/legacy-admin folder from the code repository: a small stand-in for a real old admin panel, and the guard.yaml and fixture that ship in every …
afterconfig
AfterConfig makes four promises, and the tests go after each one. It never writes the vendor’s file. It never changes what the overlay doesn’t name. A failed …
afterguard
A security gateway is only as good as its worst gap, so AfterGuard got a written threat model before any code, and every promise in it got a test. Six promises: nothing …
afterhook
AfterHook makes four promises. Every change gives exactly one event. Nothing is lost while the receiver is down or across restarts. A source that didn’t change by …
afterschema
AfterSchema makes two promises that matter. It never writes a database. And when schema test says an old read gives the same rows through the views, it does: same values, …
afterconfig
TOML in AfterConfig makes one promise on top of the old ones: the output is the vendor’s file with only your changes in it. Comments, spacing and every untouched …
afterapi
Aftermarket 0.2.0 adds a second tool. AfterAPI, run as aftermarket adapt, keeps an old client working after the API it was written for has been replaced. AfterPatch fixes …
aftertest
Aftermarket 0.3.0 adds two tools that work as a pair. AfterTest, run as aftermarket record, saves real traffic as test fixtures. AfterDiff, run as aftermarket replay, …
case studies
This is a worked case on two small stand-in versions of an orders service. Every command and every line of output below comes from a real run of aftermarket 0.3.0. The …
case studies
This is a worked case on a small stand-in service, built to look like a common kind of break. Every command and every line of output below comes from a real run of …