Add GetUser* tests
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
c68bd1b8aa
commit
5e9e8a57f2
|
@ -1,7 +1,7 @@
|
|||
|
||||
CREATE TABLE IF NOT EXISTS "user" (
|
||||
id BYTEA PRIMARY KEY,
|
||||
username VARCHAR(63555) UNIQUE,
|
||||
username VARCHAR(63555),
|
||||
bio VARCHAR(63535) DEFAULT '',
|
||||
profile_pic VARCHAR(63535) DEFAULT '',
|
||||
first_name VARCHAR(65535) DEFAULT '',
|
||||
|
|
61
user_test.go
61
user_test.go
|
@ -6,7 +6,7 @@ import (
|
|||
"bytes"
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
//"github.com/google/go-cmp/cmp"
|
||||
"github.com/google/go-cmp/cmp"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
@ -19,6 +19,8 @@ func TestUser(t *testing.T) {
|
|||
r := NewRouter(h)
|
||||
|
||||
t.Run("Create", testCreateUser(db, r))
|
||||
t.Run("GetUserByPhone", testGetUserByPhone(db, r))
|
||||
t.Run("GetUser", testGetUser(db, r))
|
||||
}
|
||||
|
||||
func testCreateUser(db *sql.DB, router http.Handler) func(t *testing.T) {
|
||||
|
@ -40,10 +42,55 @@ func testCreateUser(db *sql.DB, router http.Handler) func(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
got, want := new(User), created
|
||||
json.NewDecoder(w.Body).Decode(got)
|
||||
if diff := cmp.Diff(got, want); len(diff) != 0 {
|
||||
t.Error(diff)
|
||||
func testGetUserByPhone(db *sql.DB, router http.Handler) func(t *testing.T) {
|
||||
return func(t *testing.T) {
|
||||
mockUser := &User{
|
||||
PhoneNumber: "+65 9999 9999",
|
||||
FirstName: "Test",
|
||||
LastName: "User",
|
||||
}
|
||||
|
||||
w := httptest.NewRecorder()
|
||||
r := httptest.NewRequest("GET", "/user?phone_number=%2B6599999999", nil)
|
||||
|
||||
router.ServeHTTP(w, r)
|
||||
assertCode(t, w, 200)
|
||||
|
||||
got, want := new(User), mockUser
|
||||
json.NewDecoder(w.Body).Decode(got)
|
||||
if got.FirstName != want.FirstName || got.LastName != want.LastName || got.PhoneNumber != want.PhoneNumber {
|
||||
t.Errorf("Want user %v, got %v", want, got)
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
func testGetUser(db *sql.DB, router http.Handler) func(t *testing.T) {
|
||||
return func(t *testing.T) {
|
||||
mockUser := &User{
|
||||
PhoneNumber: "+65 88888888",
|
||||
FirstName: "User",
|
||||
LastName: "Test",
|
||||
}
|
||||
cb, _ := json.Marshal(mockUser)
|
||||
|
||||
cw := httptest.NewRecorder()
|
||||
cr := httptest.NewRequest("POST", "/user", bytes.NewBuffer(cb))
|
||||
|
||||
router.ServeHTTP(cw, cr)
|
||||
|
||||
createdUser := new(User)
|
||||
json.NewDecoder(cw.Body).Decode(createdUser)
|
||||
|
||||
w := httptest.NewRecorder()
|
||||
r := httptest.NewRequest("GET", "/user/id/"+createdUser.ID, nil)
|
||||
|
||||
router.ServeHTTP(w, r)
|
||||
assertCode(t, w, 200)
|
||||
|
||||
got, want := new(User), createdUser
|
||||
json.NewDecoder(w.Body).Decode(got)
|
||||
if diff := cmp.Diff(got, want); len(diff) != 0 {
|
||||
t.Error(diff)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue