Web DevCode coverage and the lies it tells100% coverage means every line ran during the suite. It says nothing about whether the right values were checked. A real bug that coverage missed.Sep 10, 2026·5 min
Web DevTest databases, fixtures and isolationShared test databases cause the flakiest failures in any suite. See why Linkstash defaults to an in-memory database, and how fixtures set up test data.Sep 10, 2026·5 min
Web DevTesting async code without flakesA test that passes locally and fails randomly in CI is almost always a missing await. Learn the pattern, fake timers, and why Express 5 changed the game.Sep 9, 2026·4 min
Web DevEdge cases and the bugs you would have shippedThe bugs that reach production almost never live in the happy path. Two real tests, from a real code review, show what actually catching them looks like.Sep 8, 2026·5 min
Web DevArrange, act, assert: the shape of a good testEvery clear test follows the same three-part shape. Learn to spot it, write it on purpose, and see why messy tests almost always skip a step.Sep 7, 2026·5 min
Web DevTDD: red, green, refactorWrite the test before the code that passes it. A live walkthrough of the red-green-refactor loop, building a slugify function from nothing.Sep 7, 2026·5 min
Web DevWhy write testsTests don't prove your code works. They're what lets you change it six months from now without breaking something you can't see happen.Sep 6, 2026·5 min
Web DevYour first unit test with VitestInstall Vitest, write one real assertion, and see exactly what expect() checks under the hood before you ever run npx vitest for real.Sep 6, 2026·5 min