<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>FlintHive blog</title>
    <link>https://flinthive.com/blog/</link>
    <description>Notes from building FormForge — browser extensions, testing, and the parts of shipping small software that are not the code.</description>
    <language>en</language>
    <lastBuildDate>Wed, 02 Sep 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://flinthive.com/blog/rss.xml" rel="self" type="application/rss+xml"/>
    <!-- generated by scripts/build-blog.mjs — manifest-sha256:0be7d6f91764f52a13cc68506d684716b9c1af5c0afd043719c74b365216a01c -->
    <item>
      <title>Half my test suite asserts that nothing happened</title>
      <link>https://flinthive.com/blog/half-my-test-suite-asserts-that-nothing-happened</link>
      <guid isPermaLink="true">https://flinthive.com/blog/half-my-test-suite-asserts-that-nothing-happened</guid>
      <pubDate>Wed, 02 Sep 2026 00:00:00 +0000</pubDate>
      <description>Every test passed while a headline feature was silently broken. Why I now write refusal fixtures — tests that assert nothing happened — before the feature.</description>
      <category>testing</category>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
