End-to-end test
what is end-to-end test?
An end-to-end test exercises a complete user journey through the real system: a browser, the application, the database and whatever third parties are involved. It answers whether a person can actually do the thing, which no unit or integration test can, and it is the most expensive kind of test to keep alive because everything it touches can change underneath it.
A unit test checks one function in isolation and runs in milliseconds. An integration test checks that two or three pieces agree. An end-to-end test checks the only thing a customer cares about: that signing up, or checking out, or resetting a password, works right now.
The trade is speed and stability for realism. Because an end-to-end test touches everything, it is slower, it needs an environment, and it breaks when any layer moves, including for reasons that have nothing to do with the behaviour being tested.
This is why end-to-end suites are the tests everybody agrees they should have and nobody keeps. The usual arc is that they get written during a quiet week, go red during a busy one, get retried, get marked allowed-to-fail, and are muted within a month, at which point the next regression ships to customers instead.
in smolanalytics
A test is one English sentence in a markdown file describing what should work, and an agent works out how to carry it out in a real browser. Because there is no test code, there are no selectors to break when the interface moves; the failure you get is a failure about your product. The runner takes any reachable URL: staging, a deploy preview, or localhost through a tunnel.
How it works shows where this fits in the loop, and the docs have the exact behaviour.