4
1
Fork 0
backend-core/user_test.go

48 lines
881 B
Go

// +build integration
package main
import (
"bytes"
"database/sql"
"encoding/json"
//"github.com/google/go-cmp/cmp"
"net/http"
"net/http/httptest"
"testing"
)
func TestUser(t *testing.T) {
db := connect()
defer db.Close()
h := NewHandler(db)
r := NewRouter(h)
t.Run("Create", testCreateUser(db, r))
}
func testCreateUser(db *sql.DB, router http.Handler) func(t *testing.T) {
return func(t *testing.T) {
mockUser := &User{
PhoneNumber: "+65 99999999",
}
b, _ := json.Marshal(mockUser)
w := httptest.NewRecorder()
r := httptest.NewRequest("POST", "/", bytes.NewBuffer(b))
router.ServeHTTP(w, r)
assertCode(t, w, 200)
assertDB(t, db, `SELECT * FROM "user" WHERE phone_number = "+65 97663827`)
}
}
/*
got, want := new(User), created
json.NewDecoder(w.Body).Decode(got)
if diff := cmp.Diff(got, want); len(diff) != 0 {
t.Error(diff)
}
*/