AI wrote your code. Who checks the tests?
When AI migrates a test suite, checks quietly disappear while CI stays green. The same is true when people do it. KingdomWatch counts what your tests still actually assert, and hands you the list of what vanished. It's deterministic. No AI grading AI.
I run it on a real migration of yours and walk you through the report, including everything it can't tell you.
Green CI is telling you a comforting lie.
A converter is paid to say "done." So is an LLM. A passing test run agrees with them. Neither one is built to tell you that the check you used to have is gone.
Migrating React tests from Enzyme to React Testing Library is mechanically easy now. A tool rewrites shallow() into render() all day long. The diff looks like a tidy library swap. Review approves it. CI goes green. Ship it.
Except sometimes the conversion quietly drops a check, or weakens an exact count into a vague "something is there." The test still runs. It still passes. And nothing, anywhere, tells you your coverage just shrank.
Assertion-survival is the one audit a converter structurally cannot run honestly on itself. That is exactly why it slips past even great teams, and why the checker can't be another model.
- ✔ Build
- ✔ Tests
- ✔ Coverage
// before (Enzyme): exact count expect(input).toHaveLength(1); // after (RTL): presence only expect(input).toBeTruthy(); // and this check just vanished: expect(img.prop('alt')).toEqual('VISA') // a wrong number of card inputs // now passes the test. Still green.
I measured it on real, merged, reviewed migrations.
Before trusting AI to do this at scale, I wanted a baseline: how much do careful humans lose, with full code review? I ran an assertion-counter over 12 real Enzyme to RTL pull requests from well-known open-source projects.
| What we measured | Result |
|---|---|
| Files that demonstrably dropped an assertion (strict) | ~35% (47/135) |
| Files with any dropped or weakened assertion (broad) | ~74% (100/135) |
| Assertions that survived the conversion | 92.4% |
| Assertions that quietly disappeared | 7.6% |
| Suites that went red to warn anyone | 0 |
| Migrations that scored a clean 100% (not crying wolf) | 5 |
That's the human baseline, with real review. An AI-assisted batch migration runs the same mechanism, just faster and larger, with thinner review per file. Nothing about that direction makes the number smaller.
It counts. That's the whole trick, and the whole point.
A short quest. Deterministic. Repeatable. No model sits in the verdict path. Same input, same number, every run, reproducible by anyone from the same commit. In a world where AI writes the code and reviews the code, the trust layer can't be a third model's opinion.
You bring the migration
The original suite and the converted one: a branch, a diff, a migration PR. Repo link or before/after, we fetch what we need.
We analyze both worlds
It pairs every test and counts effective assertions, before and after. Assertions, coverage, and intent.
We compare and prove
An intra-file shuffle can't hide a drop; a pre-existing weak test doesn't get blamed on the migration. What changed, what vanished, what matters.
You get the receipts
A worklist, not a verdict: which files lost assertions, which checks disappeared, and where an exact count became a loose truthy check. A human decides which of those losses actually matter.
A smoke detector, not fireproofing.
This is a structural proxy, not proof. It counts assertion nodes before and after. A green grade means "no obvious loss detected." It never means "your coverage is safe." A dropped assertion might have been deliberately replaced by an equivalent check the counter can't pair; a surviving one can still pass for the wrong reason.
I lead with this on purpose. If I oversold it, you'd be right to ignore me. Every finding ships with what it can't tell you. A number you can trust is worth more than one that's trying to impress you.
Start free. Pay only when you want the deep pass.
The finding is the gift. If you want a person to go through the list, decide which losses matter, and help restore the coverage, that's the paid audit. One fixed price, agreed up front, so there are no surprises.
Your Free Pass includes:
- Analyze one migration (before vs after)
- Assertion parity diff: dropped, weakened, survived
- Risk summary & recommendations
- Human-reviewed report (no AI verdicts)
No login, no credit card, no obligations. One migration per team. Bring the one you trust least.
Fixed-scope audit
- Multi-area audit across your migration
- Root cause & risk heatmap
- Which coverage losses actually matter
- Prioritized fix plan to restore coverage
- Optional re-audit after fixes
The free report doubles as the scope. You'll know exactly what you're paying for before you pay for it.
Make migrations safer over time.
The same deterministic check, running automatically on every migration PR, so a silent drop fails the build instead of merging green.
- Automated parity checks in CI. Every push, every PR.
- Fail builds on risky drops. The gate goes red where review goes blind.
- Trend dashboards & alerts. Watch assertion health over time.
- Policy-as-code for quality gates. Your rules, enforced the same way every run.
SAFER SHIPS.
FEWER SURPRISES.
Seven deterministic test-engineering analyzers. Built for truth.
One counts assertions; the rest watch the other ways a suite lies.
Bring me a migration. I'll show you what it dropped.
A repo link, a PR, or just the before/after. You'll get an honest report and a walkthrough. No pitch until you ask for one.
- 100% free. No strings.
- Human-reviewed. No AI verdicts.
- Actionable in days, not weeks.
- Built by an engineer, sold with receipts.