package web_test import ( "net/http" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "git.d-ma.be/mathias/tapir/internal/uploads" ) func TestUploadPost_ABusyRejectionIs429WithItsMessage(t *testing.T) { app, _ := newUploadApp(t, audioOK, 200<<20) app.Uploads = failingUploader{err: &uploads.RejectError{Reason: uploads.ReasonBusy, Message: "Too many recordings are waiting. Try again in a few minutes."}} rec := do(t, app, uploadReq(t, "t", "a.m4a", []byte("x"))) require.Equal(t, http.StatusTooManyRequests, rec.Code, "the user's to retry: not a 500, not a 422") assert.Contains(t, body(t, rec), "Too many recordings are waiting") } func TestUploadStatus_ABusyFailureIsExplainedInWords(t *testing.T) { app, _ := newUploadApp(t, audioOK, 200<<20) id := seedUpload(t, userID, "m", "failed", "queue_full") b := body(t, do(t, app, get("/uploads/"+id+"/status"))) assert.Contains(t, b, "waiting") assert.NotContains(t, b, "This upload failed. Please upload it again.") }