the-internet-tests

ADR-0002 — Separate UI scenarios from HTTP/resource scenarios

Context

Some of the demo application’s behavior is not about rendering: status codes, redirects, basic and digest authentication, slow resources, and broken images are properties of HTTP responses. A browser can observe them, but driving a browser to assert a status code is theatre — it is slower, flakier, and teaches the wrong instinct.

The cost showed up in the browser matrix. Running a status-code check in Chromium, Firefox, and WebKit repeats an identical assertion three times and proves nothing about the second and third: the response does not change because the rendering engine did.

Decision

Split the catalog by prefix. UI- scenarios drive a browser and assert rendered behavior. HTTP- scenarios assert resource-layer behavior and make no rendering claims. The prefix is part of the scenario ID, so the split is visible in the ID grammar, the matrix, and every test name.

Pin HTTP- scenarios to a single browser project in CI with the @http / http tag, and invert them out of the other projects so they run once per run rather than once per browser.

Consequences