Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "bytes"
- "encoding/binary"
- "net/http"
- "net/http/httptest"
- "github.com/sirupsen/logrus"
- "net/http"
- "testing"
- "github.com/stretchr/testify/assert"
- )
- // helper.go
- func JSONStrigify(payload string) []byte {
- jsonData := []byte(payload)
- return jsonData
- }
- // request.go
- func HttpTestRequest(handler http.Handler, method, url string, payload []byte) *httptest.ResponseRecorder {
- request := make(chan *http.Request)
- errors := make(chan error)
- if binary.Size(payload) > 0 {
- req, err := http.NewRequest(method, url, bytes.NewBuffer(payload))
- go func() {
- request <- req
- errors <- err
- }()
- } else {
- req, err := http.NewRequest(method, url, nil)
- go func() {
- request <- req
- errors <- err
- }()
- }
- if <-errors != nil {
- logrus.Error(<-errors)
- }
- rr := httptest.NewRecorder()
- handler.ServeHTTP(rr, <-request)
- return rr
- }
- // main_test.go
- func TestCreateAccount(t *testing.T) {
- router := setupRouter()
- res := helper.HttpTestRequest(router, "POST", "/account", helper.JSONStrigify(`{
- "name":"xyz",
- "ic_type":"pqr",
- "ic_number_identity":"xyz@pqr.com",
- "account_number":"1234567890",
- "account_name":"1234567890",
- "bank_name":"1234567890",
- "type":"1234567890"
- }`))
- assert.Equal(t, http.StatusOK, res.Code)
- }
Add Comment
Please, Sign In to add comment