fix: replace 3.5s sleep with poll loop in till checkout test
CI / Docker compose check (push) Successful in 51s
CI / Env docs check (push) Successful in 55s
CI / Frontend major deps (push) Failing after 55s
CI / Secrets scan (push) Successful in 58s
CI / Frontend deps check (push) Successful in 57s
CI / Frontend build (push) Successful in 55s
CI / Go build (push) Successful in 57s
CI / Nginx config check (push) Successful in 56s
CI / go mod tidy (push) Successful in 20s
CI / Go vet (prod) (push) Successful in 2m17s
CI / Go vulnerabilities (push) Successful in 1m56s
CI / Go vet (dev) (push) Successful in 2m21s
CI / Staticcheck (prod) (push) Successful in 2m57s
CI / Frontend a11y check (push) Failing after 57s
CI / Staticcheck (dev) (push) Successful in 3m16s
CI / Knip (push) Successful in 1m7s
CI / golangci-lint (push) Successful in 3m36s
CI / Frontend QC (audit) (push) Successful in 1m8s
CI / Security scan (prod) (push) Successful in 4m37s
CI / Security scan (dev) (push) Successful in 4m43s
CI / Frontend QC (typecheck) (push) Successful in 1m20s
CI / Frontend QC (lint) (push) Successful in 1m37s
CI / Svelte strict check (push) Successful in 2m18s
CI / Tests (prod) (push) Successful in 3m25s
CI / Tests (dev) (push) Failing after 3m32s
CI / Race (prod) (push) Successful in 7m11s
CI / Race (dev) (push) Successful in 7m25s

This commit is contained in:
2026-07-10 20:53:42 +01:00
parent b91339ec56
commit fe47cb486a
+12 -4
View File
@@ -540,10 +540,18 @@ func TestGetTillCheckoutStatus_Completed(t *testing.T) {
t.Fatal("expected checkout_id to be set for card_machine payment")
}
// Wait for the mock goroutine to complete. The mock's goroutine sleeps 3s
// by default (mockSleep is only skipped when isTesting is set before the
// square package initializes, which depends on init ordering with db).
time.Sleep(3500 * time.Millisecond)
// Wait for the mock goroutine to complete the checkout with polling.
deadline := time.Now().Add(5 * time.Second)
for {
_, err := SquareClient.GetCheckout(context.Background(), *createResp.CheckoutID)
if err == nil {
break
}
if time.Now().After(deadline) {
t.Fatalf("timed out waiting for checkout to complete: %v", err)
}
time.Sleep(100 * time.Millisecond)
}
// Now call GetTillCheckoutStatus — should return COMPLETED.
statusReq := httptest.NewRequest("GET", "/api/admin/till/checkout/"+*createResp.CheckoutID+"/status", nil)