# Dev Log — 2026-03-30 ## Non-EB Claims API — Unit Tests --- ### 1. Added `print_r` Debug Output to All API Unit Tests Added `print_r($body)` after every response body decode across all 4 test files so developers can see the actual JSON output directly in the terminal when running PHPUnit. **Files modified:** | File | Tests updated | Notes | |---|---|---| | `tests/unit/Api/ListClaimsTest.php` | 5 tests | Pagination tests that didn't capture `$resp` were updated to capture it and print decoded body | | `tests/unit/Api/ClaimHistoryTest.php` | 6 tests | `print_r($body)` added after every `$body = $this->body($resp)` | | `tests/unit/Api/UploadRequiredDocTest.php` | 8 tests | `print_r($body)` added after every `$body = $this->body($resp)` | | `tests/unit/Api/CreateClaimTest.php` | 5 remaining tests | Already had it in 2 tests; added to the remaining 5 | **Pattern applied:** ```php $body = $this->body($resp); print_r($body); // ← added $this->assertFalse($body['status']); ``` For pagination tests (`testPerPageIsCappedAt100`, `testPerPageMinimumIsOne`, `testPageDefaultsToOne`) that previously discarded the return value: ```php // before $ctrl->listClaims(); // after $resp = $ctrl->listClaims(); print_r(json_decode($resp->getBody(), true)); ``` --- ### 2. `testReturns409OnDuplicateClaim` — Explained How It Works Investigated why changing `nature_of_loss`, `loss_location`, and `client_id` in `$_POST` still always produces 409. Key findings: - `nature_of_loss` / `loss_location` — not part of `checkDuplicateNonEbClaim()`, only used for validation (min length check) - `client_id` in `$_POST` — **never read from POST**; controller derives it from `clientPolicyModel` stub (`client_id = 35`) - Duplicate check only queries on: `client_id` + `loss_date` + `is_active` (+ `policy_no`) - `nonEbTicketModel` stub (`makeFluentStub(['id' => 55])`) ignores all `.where()` chain calls and always returns `['id' => 55]` on `->first()` — meaning "duplicate found" unconditionally - The only way to change the 409 outcome is to make the `nonEbTicketModel` stub return `null` on `->first()` --- ### Files Modified | File | Changes | |---|---| | `tests/unit/Api/ListClaimsTest.php` | `print_r` added to all 5 test methods | | `tests/unit/Api/ClaimHistoryTest.php` | `print_r` added to all 6 test methods | | `tests/unit/Api/UploadRequiredDocTest.php` | `print_r` added to all 8 test methods | | `tests/unit/Api/CreateClaimTest.php` | `print_r` added to remaining 5 test methods |