Posts by Kevin Martinez

@Kevin Martinez

Kevin Martínez

TWD (testing while developing) maintainer
Spain twd.dev Joined June 2025
3k Points • 115 Badges • 24 Connections • 68 Followers • 25 Following

Posts by Kevin Martinez

Kevin Martinez • • in Articles • 4 min read
An agent opened a pull request on my repo last week. Eleven files changed, three new tests, all green. So what do you actually check? You can read the diff. You can read the test file and see what it asserts. Both of those tell you what the agent b...
Kevin Martinez • • in Articles • 5 min read
A Vue component's job is to produce DOM in a browser. Most component tests ask it to do that somewhere else: in Node, against a DOM that jsdom simulates. That has been the default since npm create vue@latest started offering Vitest with jsdom, and fo...
Kevin Martinez • • in Articles • 6 min read
Every Testing Library test you have written runs against a simulated DOM. You know this. You accepted it years ago, along with the small pile of things that come with it: no real layout, nothing ever drawn on a screen, jsdom throwing on APIs it does ...
Kevin Martinez • • in Articles • 3 min read
You open a frontend pull request. The diff is 400 lines, an AI agent wrote most of it, and the description says "adds the checkout flow". CI is green. You read the diff. It looks reasonable. You still have no idea what the UI actually does. So you ...
Kevin Martinez • • in Articles • 3 min read
Open Cellshttps://www.opencells.dev is an open-source framework from BBVA for building web apps out of Web Components. It leans on Lithttps://lit.dev, real Shadow DOM, a hash-based router, and channels for state. If you build with Cells, you are work...
Kevin Martinez • • in Articles • 2 min read
HTMX apps are refreshingly simple: the server returns HTML fragments, and HTMX swaps them into the page in response to hx-get, hx-post, and friends. There is usually no bundler and no client framework. That simplicity is the point, and it is also why...
Kevin Martinez • • in Articles • 3 min read
Not every app has a bundler. Plenty of real software is still a folder of HTML and JavaScript served as static files: internal tools, landing pages, small products, and anything deliberately kept simple. These apps ship and they matter, but their tes...
Kevin Martinez • • in Articles • 4 min read
Create React App was officially deprecatedhttps://react.dev/blog/2025/02/14/sunsetting-create-react-app in February 2025. The apps built with it didn't disappear. If you maintain one, you know the drill: the app works, it ships, and the Vite migratio...
Kevin Martinez • • in Articles • 6 min read
Automated accessibility testing usually means one thing: point a scanner at the page, let it check the initial HTML against a set of WCAG rules, and turn green. Missing alt text, an unlabeled input, low-contrast text at load. Caught. Done. Then a us...
Kevin Martinez • • in Articles • 5 min read
Testing components in a simulated DOM jsdom, happy-dom has always felt like a compromise. What we actually want is tests that run in a real browser. So when Vitest Browser Mode shipped, I was genuinely excited to try it. I co-maintain TWD Testing Wh...
Kevin Martinez • • in Articles • 3 min read
You just built a Nuxt todo page. It loads from a Nitro route, adds a todo, deletes one, and it works when you click around. Now you want a test that proves it keeps working. The usual answer is to leave the app, stand up a separate test stack, and r...
Kevin Martinez • • in Articles • 5 min read
I had both Playwrighthttps://playwright.dev/docs/intro and TWDtwd.dev pointed at the same small app for a working day. Same backend, same UI, the same bugs to chase. The point wasn't to declare a winner. It was to notice what each one feels like to l...
Kevin Martinez • • in Articles • 6 min read
You wrote a React Router v7 route. It has a loader, an action, a form, some interactivity. Now you want to test it. The official docshttps://reactrouter.com/start/framework/testing hand you two paths and neither one covers the case you actually have....
Kevin Martinez • • in Articles • 2 min read
Setting up TWDhttps://www.npmjs.com/package/twd-js used to mean adding a block of dev-only code to your app's entry file — a dynamic import for the runner, a test glob, a service-worker config, and a twd-relayhttps://www.npmjs.com/package/twd-relay b...
Kevin Martinez • • in Articles • 2 min read
You have unit tests in Vitest or Jest. You have E2E tests in Playwright. CI runs both. Coverage works for each, until you try to look at a single number. Then it gets weird. Two runtimes, two coverage outputs Unit tests run in Node, instrumented b...
Kevin Martinez • • in Articles • 5 min read
Payment integrations are one of the hardest things to test in a web app. The SDK renders its own UI, controls its own form fields, and fires callbacks when the user completes a payment. You can't programmatically fill in a credit card number. You can...
Kevin Martinez • • in Articles • 2 min read
AI is changing the way we work as developers. We are moving from writing code to writing specifications. Instead of implementing features ourselves, we rely more on agent modes and tools like Claude Code, Codex, or Gemini CLI. This works incredibly...
Kevin Martinez • • in Articles • 4 min read
A few weeks after releasing TWDhttps://brikev.github.io/twd/, a tool designed to integrate testing directly into the development workflow. I started creating testing recipes for different frontend frameworks. While doing that, a few patterns became v...
Kevin Martinez • • in Articles • 3 min read
If you're reading this, you're probably working with React or learning how to use it. And if that’s the case, you’ve surely heard of react-router, the most popular library for routing in React apps for years. But what you may not know is that in its...
chevron_left