Posts by Kevin Martinez

@Kevin Martinez

Kevin Martínez

Javascript developer and enthusiastic about web development and learning every d...
Spain twd.dev Joined June 2025
2.7k Points82 Badges10 Connections55 Followers10 Following

Posts by Kevin Martinez

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 Tutorials 4 min read
The first time you try to test a TanStack app the way the React Testing Library docs suggest, the test file gets bigger than the component. You spin up a memory router, instantiate a new QueryClient per test, wrap everything in QueryClientProvider an...
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 Tutorials 6 min read
Every mock you write is a claim about what your backend returns. The moment the backend changes — a renamed field, a tightened enum, a new required property — that claim becomes a lie. Your tests still pass. Production breaks. This is mock drift, an...
Kevin Martinez in Tutorials 4 min read
You have written the tests. The CI pipeline runs them. The gap analysis has helped you fill the blind spots. Quality checks are passing. The work is solid. And yet — ask a product manager what your test suite actually covers, and you will get a blan...
Kevin Martinez in Tutorials 4 min read
The Problem With "We Have Tests" There is a moment in every project where someone says "we have tests" like it settles the matter. The CI pipeline is green. The coverage number is somewhere north of 70%. Everything is fine. Until a bug slips throu...
Kevin Martinez in Tutorials 3 min read
You've wired up your test suite. CI is green. You're shipping. And then a bug lands in production on a route nobody thought to test. It's not that your tests are bad. It's that you didn't know what was missing. That's the problem /twd:test-gaps is ...
Kevin Martinez in Tutorials 3 min read
Why Set Up CI Early Once you have tests worth running, the natural next step is making sure they run on every push. The sooner you do it, the fewer surprises down the road — things like env vars that only exist locally or paths that work on your ma...
Kevin Martinez in Tutorials 4 min read
In the previous articlehttps://coderlegion.com/17453/stop-letting-ai-write-untestable-code-add-determinism-back-with-twd, we talked about /twd:setup — the skill that analyzes your project and generates .claude/twd-patterns.md, a file that teaches you...
Kevin Martinez in Tutorials 2 min read
Now that AI is generating a big portion of our frontend code, speed is no longer the main bottleneck. Confidence is. We’ve seen this before: when teams wanted to move fast, the real enabler wasn’t “more code” — it was having a solid testing strate...
post-cover-17453
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 Tutorials 3 min read
One of the biggest milestones we’ve been working on is now live: TWD 1.3.x brings full multi-framework support with a single unified setup. This means you can now drop TWD into React, Vue, Solid, and Angular projects using the exact same initializat...
post-cover-8455
Kevin Martinez in Tutorials 3 min read
In this part, we’ll look at a new feature in TWD: support for Testing Library–style selectors. These selectors are widely known in the community, and while you could technically use them before TWD is very flexible, now they’re fully integrated — inc...
post-cover-7410
chevron_left

Latest Jobs

View all jobs →