Pin the two form rules that fail silently

Testkamo-internal
Shipped
August 27, 2026 at 6:17 AM UTC
Author
kamo
Commit
2f5daaa

Both decide what NOT to send, which is the half of a form with no visible symptom when it goes wrong. A blank remittance line must not become a zero. Every line carrying a figure is what closes a claim, so posting zeros for the lines somebody left empty marks it finished while the payer is still working it — and it drops off the awaiting-adjudication queue with money still owed. Nobody notices, because a closed claim looks like a finished one. Zero itself IS a figure: a payer paying nothing is an adjudication, usually a denial, and dropping that would leave the claim open forever — the same bug pointing the other way. An untouched demographics field must not be sent. The server leaves an absent field alone, and diffing against what was loaded is what makes that true: a screen not rendering every column then cannot empty the ones it omits, which is a birth date disappearing because somebody fixed a misspelt surname. A cleared field is not a change to empty either — clearing a name is not something the form offers, so a stray select-all-delete must not wipe it on the next save. Both moved out of their components to be stated once and tested. A rule embedded in JSX is one that gets re-derived slightly differently the next time somebody touches the layout. 12 tests, including that amounts stay strings — parsing them to validate would put binary floating point back into money.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing