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