Profitina Laundry ASP.NET Core MVC tests - .NET 10.0.12, data copy /tmp/profitina-aspnet-tests-788bcf74

PASS UNIT-PW PBKDF2 format: test vector, owner hash, new hashes (S-5)
PASS UNIT-RULES Roles, whole numbers, promised time, money format
PASS TC-4.7 CSV store rollback: an error inside a transaction leaves memory and files unchanged
PASS TC-11.1 API answers equal the examples of docs/api.md (services, bills, customers, status, dashboard, reports)
PASS TC-1.2/1.3 Wrong password and unknown e-mail: the same 401 message
PASS TC-1.5/1.7 No session: API 401 / page redirect; logout ends the session
PASS TC-1.8 Session cookie HttpOnly + SameSite=Lax; new id at every login
PASS TC-1.9 Five failures lock the e-mail for 15 minutes (429)
PASS TC-1.6 Washer: reports 403, customers 403, no Customers menu
PASS TC-2.x Customers: search, create C0257, 4 field errors, delete rules
PASS TC-3.x Services: validation, delete refused (1,368 bills), cashier 403
PASS TC-4.x New bill: CSRF needed; validation; C0151 S0001 5 kg -> B2954 Rp 40.000 with pay_now
PASS TC-5.x/6.x Workflow + payments on B2938: 409s, qris needs reference, pay, hand over
PASS TC-5.7 Queue O02: 9 in process (6 overdue), 6 ready
PASS TC-7.x Receipt: official logo byte-identical, amounts, no private data
PASS TC-8/9 Dashboard web numbers; CSV export; cashier refused
PASS TC-10.x Status check: same 404 for wrong phone / unknown bill; 429 after 10 look-ups
PASS TC-NF-03/04 XSS escaped; web form without token refused
PASS TC-11.4/11.5 Errors in one JSON format; no 'password' in any answer

RESULT: 19 passed, 0 failed (19 tests)
