My Tests Never Made a Receipt With No Deadline

On Sunday I opened all 12 of my iPhone apps in the Release configuration and used them like a person who had just downloaded them. ReceiptCrate failed on one of the simplest records I could make.
I added a receipt with no return deadline and no warranty deadline. Crate called it Expired. Alerts put the same receipt on screen with three lines that fought each other: "No active deadline," "Expired," and "2 DAYS AGO."
The fallback was wrong
ReceiptCrate derives a status from the active deadline. A future return date shows Returnable, while a future warranty shows Warranty Active. Once either date is within seven days, the status becomes Expiring Soon.
The function then needed an answer when it found no active deadline. It returned Expired.
That answer covered receipts whose tracked deadlines had passed. It also covered receipts with no deadline at all. Two different records landed in the same fallback branch.
The fix says what the empty case means:
if returnDeadline == nil && warrantyDeadline == nil {
return .saved
}
Expired now requires at least one tracked deadline with none left active.
The suite never made that receipt
No unit test constructed a receipt with both deadline fields set to nil. The suite ran the cases I had written and stayed green. It never created the record I found during the walkthrough.
That was the hole. The app lets someone save a receipt without tracking a return or warranty date, but the status tests had skipped that valid path.
I added the missing case by name: no return deadline, no warranty deadline, expected status Saved.
I checked the fix in Release
I erased the iPhone 17 Pro simulator and ran the shipping configuration. The new receipt showed Saved in Crate, Search, and Detail. Alerts did not list it. 86 of 86 Release tests passed.
Then I checked the upgrade path. I used the old build to save a receipt and an attached image, installed the new build over that store, and opened the same record. The receipt and image survived. Its visible status changed from Expired to Saved.
ReceiptCrate 1.1.0 is still the live App Store version. This fix is in the development line for the next update. The test that should have existed from the start is there now.