start of manual testing

This commit is contained in:
hamid
2026-07-27 00:54:22 +03:30
parent 12ce7fa7de
commit bd06ef0016
21 changed files with 2289 additions and 12 deletions
+16
View File
@@ -677,6 +677,22 @@ action to `sender.Send(...)`. Full conventions are in [CONVENTIONS.md](CONVENTIO
guarding each persona on its phone number so re-runs are a no-op. Invoked via `SeedDemoWorldAsync()`
**only under `IsDevelopment()`** — never in Production/Staging. The demo world (phones, which nurse is
verified) is in `dev/post-phase/refinement/RUNBOOK.md`.
- **Development lifecycle seeder (manual-testing bring-up).** `Persistence/Services/Seeding/DemoLifecycleSeeder.cs`
(+ `.Money.cs`/`.Social.cs` partials + `DemoLifecycleDefinitions.cs`) layers a full **lifecycle** world on the
demo personas so every flow is manually testable: booking requests in every status, 8 bookings across every
reachable state (upcoming w/ care instructions, a 5-session package mid-engagement with EVV, completed
inside/past the dispute window, BNPL-settled, cancelled-with-refund, clawed-back), the balanced payment
ledger behind each (via `LedgerPosting`), refunds on all three forks, a **paid** and a **draft** payout batch
(dispatched through the real `GeneratePayoutBatch`/`ExecutePayoutBatch` commands), moderated reviews +
recomputed nurse aggregates, tickets (incl. an `is_internal` note + coordination tickets via the real
command), notifications, patient care records, a merchant-of-record partner center (portal user
`09120000030`, linked to the second nurse), and a mid-pipeline verification case for the unverified nurse.
States are reached through the entities' guarded transition methods + `BookingFactory` (Application grants
`InternalsVisibleTo` to Persistence for this); business timestamps are backdated explicitly. Idempotent per
scenario on natural keys — **never guard on a Persian string**: the `ApplicationDbContext` save hook
normalizes Persian digits/ZWNJ in every stored string, so a Persian literal never round-trips equal.
Invoked via `SeedDemoLifecycleAsync()` after the demo-world + gateway seeds, Development-only. Scenario
table + testing plan: `dev/post-phase/manual-testing-plan.md`.
---