package paymenthttp import ( "net/http" "net/http/httptest" "strings" "testing" customer "git.sendico.io/tech/sxchnge/product/customers/model" "github.com/stretchr/testify/require" "go.mongodb.org/mongo-driver/v2/bson" "go.uber.org/zap" ) func TestUnconfiguredWalletCannotReturnDemoFunds(t *testing.T) { h := &router{logger: zap.NewNop()} a := &customer.Account{} a.ID = bson.NewObjectID() request := httptest.NewRequest(http.MethodGet, "/accounts/wallet", nil) recorder := httptest.NewRecorder() h.fetch(request, a, nil)(recorder, request) require.Equal(t, http.StatusServiceUnavailable, recorder.Code) require.Equal(t, "no-store", recorder.Header().Get("Cache-Control")) require.NotContains(t, recorder.Body.String(), "7500") } func TestQuoteRejectsUnknownFieldsAndTrailingRequests(t *testing.T) { h := &router{logger: zap.NewNop()} a := &customer.Account{} a.ID = bson.NewObjectID() for _, body := range []string{`{"kind":"payout","subject":"foreign"}`, `{"amount":10} {"amount":20}`, `{"amount":1.2}`} { request := httptest.NewRequest(http.MethodPost, "/accounts/wallet/quote", strings.NewReader(body)) recorder := httptest.NewRecorder() h.quote(request, a, nil)(recorder, request) require.Equal(t, http.StatusBadRequest, recorder.Code) } }