PASS Tests\Feature\AdminPaymentSettingsTest ✓ customer cannot manage payments or settings 0.52s ✓ payment and setting pages render 0.11s ✓ admin updates store name and contact 0.11s ✓ settings validation 0.10s ✓ admin uploads and resets favicon 0.12s ✓ admin creates virtual account 0.11s ✓ virtual account validation 0.09s ✓ admin updates va number 0.09s ✓ qris requires image and can be replaced 0.11s ✓ toggle and delete channel 0.09s ✓ channel with unpaid orders cannot be deleted 0.13s PASS Tests\Feature\AdminTest ✓ customer cannot open admin 0.09s ✓ admin pages render 0.13s ✓ admin creates product with sizes and image 0.10s ✓ admin product validation 0.09s ✓ editing product keeps category and updates stock 0.09s ✓ deleting ordered product only deactivates it 0.11s PASS Tests\Feature\AuthTest ✓ register creates customer account 0.02s ✓ register validation 0.01s ✓ login and logout 0.22s ✓ admin is redirected to dashboard after login 0.01s ✓ login is rate limited 1.03s PASS Tests\Feature\CartCheckoutTest ✓ add to cart requires size 0.09s ✓ add to cart stays on the same page and quantity is capped by stock 0.09s ✓ buy now goes straight to checkout 0.09s ✓ ajax add to cart returns json with cart count 0.10s ✓ ajax add to cart errors return json 0.08s ✓ sold out variant cannot be added 0.08s ✓ update and remove cart items 0.10s ✓ ajax update and remove return fresh totals 0.12s ✓ checkout page lists active va banks and qris only 0.11s ✓ checkout with va creates order and decrements stock 0.11s ✓ checkout with qris shows qr code 0.12s ✓ inactive channel cannot be used 0.10s ✓ checkout prevents overselling 0.11s ✓ checkout validates input 0.11s ✓ inactive product is pruned from cart 0.09s ✓ empty cart cannot checkout 0.09s PASS Tests\Feature\DistanceDeliveryTest ✓ haversine and rounding 0.08s ✓ minimum and free boundary 0.08s ✓ outside radius is not free 0.08s ✓ invalid point is rejected 0.08s ✓ checkout starts without valid quote 0.11s ✓ order saves distance and rate snapshot 0.12s ✓ free order and duplicate request 0.12s ✓ changed coordinate invalidates signature 0.12s ✓ changed settings invalidates signature 0.10s ✓ address confirmation required 0.11s ✓ no javascript review preserves form and can order 0.12s ✓ road cache used for order without network 0.11s ✓ unavailable road does not fallback 0.08s ✓ implausible road response is rejected 0.08s ✓ expired road quote requires refresh 0.08s ✓ admin can save settings 0.09s ✓ customer cannot save shipping 0.08s ✓ bad settings and missing routing are rejected 0.09s ✓ five gallery uploads are saved 0.10s ✓ six gallery uploads are rejected 0.09s ✓ catalog has five distinct images and safe rerun 0.22s ✓ custom admin gallery is not overwritten 0.20s PASS Tests\Feature\OrderFlowTest ✓ customer uploads proof and it is private 0.13s ✓ proof must be an image 0.11s ✓ qris order accepts proof 0.12s ✓ customer cannot upload proof after order processed 0.11s ✓ changed va number does not change existing order snapshot 0.14s ✓ customer cancel restores stock 0.12s ✓ customer cannot cancel paid order 0.11s ✓ admin status flow and invalid transition 0.14s ✓ admin cancel restores stock 0.11s ✓ revenue only counts verified orders 0.14s ✓ customer order list and account pages 0.12s PASS Tests\Feature\RevisionFourTest ✓ profile has only one photo upload 0.09s ✓ avatar upload private and removal 0.09s ✓ avatar rejects script and large dimensions 0.08s ✓ avatar cannot be requested as guest 0.08s ✓ bank logo upload and reset 0.09s ✓ logo rejects svg and css injection 0.10s ✓ customer cannot change bank branding 0.08s ✓ search returns only indonesia and caches 0.08s ✓ search invalid query and guest 0.08s ✓ search provider failure and empty results 0.09s ✓ search global cooldown 0.09s ✓ search empty success 0.09s ✓ customer coordinates hidden 0.09s ✓ catalog28 products five photos and numeric sizes 0.22s ✓ custom product name is not overwritten 0.21s PASS Tests\Feature\StoreUpgradeTest ✓ customer login defaults to store home 0.09s ✓ customer login ignores intended profile and returns home 0.08s ✓ store and admin use fixed light theme 0.10s ✓ no native browser dialog calls in application js 0.09s ✓ admin can create same size in different colors 0.10s ✓ duplicate color size is rejected case insensitively 0.08s ✓ gallery upload and delete are owned and persisted 0.10s ✓ malformed legacy gallery inputs return validation errors 0.09s ✓ gallery rejects non image 0.09s ✓ gallery rejects more than five images 0.09s ✓ stale inventory version cannot overwrite sale 0.12s ✓ retired variant cannot be added to cart 0.08s ✓ province specific shipping overrides national same service 0.08s ✓ city specific shipping overrides province 0.09s ✓ checkout shipping endpoint returns fresh signed quote 0.10s ✓ customer cannot manage shipping 0.08s ✓ disabled shipping rate is rejected at checkout 0.10s ✓ price change requires quote review 0.10s ✓ shipping change requires quote review 0.10s ✓ checkout is idempotent and does not double deduct 0.10s ✓ old checkout replay does not clear new cart 0.11s ✓ snapshot number and qr do not follow live channel 0.11s ✓ qris snapshot access is owner or admin only 0.12s ✓ missing qris cannot create order 0.10s ✓ stale proof cannot resurrect cancelled order 0.11s ✓ stale proof cannot revert processed order 0.11s ✓ customer policy is rechecked after lock 0.11s ✓ large money totals are stored exactly 0.11s ✓ array inputs return validation not server error 0.08s ✓ short va with spaces is rejected 0.08s ✓ used payment channel type is immutable 0.11s ✓ reseed does not reset admin password 0.10s ✓ seeded order cancel does not inflate stock 0.29s ✓ expiry is idempotent and restores stock once 0.12s ✓ order notifications include new order proof and status 0.11s ✓ mail outage does not rollback paid order creation 0.11s ✓ forgot password is generic for unknown email 0.49s ✓ password reset token is single use and changes session version 0.09s ✓ invalid password reset is rejected 0.28s ✓ policy pages render and customer cannot edit 0.10s ✓ admin can edit plaintext policies safely 0.09s PASS Tests\Feature\StorefrontTest ✓ public pages render 0.19s ✓ sold out sizes are disabled and sold out product has no cart form 0.10s ✓ inactive product is hidden 0.10s ✓ unknown page uses custom 404 0.08s ✓ guest is redirected from protected pages 0.08s PASS Tests\Feature\VisualRefinementTest ✓ guest can toggle favorites and view saved product 0.09s ✓ normal favorite form has non javascript fallback 0.08s ✓ favorite session isolated between browsers 0.09s ✓ inactive product cannot be added to favorites 0.09s ✓ favorites do not reserve stock 0.09s ✓ wishlist rejects over capacity without losing items 0.08s ✓ malformed wishlist session is handled safely 0.09s ✓ home has real categories latest collection size help and faq 0.09s ✓ favorite controls are outside product buy form 0.09s ✓ customer history is inside payment sidebar 0.11s ✓ admin order shows timeline 0.11s ✓ order search and status are scoped to signed in customer 0.11s ✓ order search rejects array input and invalid status 0.08s ✓ location search is visible without opening map and coordinates rema… 0.09s ✓ both layouts load shared refinement assets 0.10s ✓ all application javascript avoids native message dialogs 0.08s Tests: 148 passed (870 assertions) Duration: 17.21s