37 lines
1.2 KiB
Go
37 lines
1.2 KiB
Go
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)
|
|
}
|
|
}
|