4
1
Fork 0
pull/24/head
Ambrose Chua 2019-09-29 22:20:17 +08:00
parent a2e42b82b2
commit 208f0576e5
Signed by: ambrose
GPG Key ID: BC367D33F140B5C2
1 changed files with 31 additions and 24 deletions

View File

@ -18,9 +18,9 @@ func TestContact(t *testing.T) {
h := NewHandler(db) h := NewHandler(db)
r := NewRouter(h) r := NewRouter(h)
setupUsers(t, db, r) users := setupUsers(t, db, r)
t.Run("Create", testCreateContact(db, r)) t.Run("Create", testCreateContact(db, r, users))
} }
func setupUsers(t *testing.T, db *sql.DB, router http.Handler) { func setupUsers(t *testing.T, db *sql.DB, router http.Handler) {
@ -43,6 +43,8 @@ func setupUsers(t *testing.T, db *sql.DB, router http.Handler) {
}, },
} }
resultUsers := []User{}
for _, user := range users { for _, user := range users {
b, _ := json.Marshal(user) b, _ := json.Marshal(user)
w := httptest.NewRecorder() w := httptest.NewRecorder()
@ -50,39 +52,44 @@ func setupUsers(t *testing.T, db *sql.DB, router http.Handler) {
router.ServeHTTP(w, r) router.ServeHTTP(w, r)
assertCode(t, w, 200) assertCode(t, w, 200)
got := new(User)
json.NewDecoder(w.Body).Decode(got)
resultUsers = append(resultUsers, got)
} }
return resultUsers
} }
func testCreateContact(db *sql.DB, router http.Handler) func(t *testing.T) { func testCreateContact(db *sql.DB, router http.Handler) func(t *testing.T) {
return func(t *testing.T) { return func(t *testing.T) {
/* // Setup
// Setup mockUser := &User{
mockUser := &User{ PhoneNumber: "+65 9999 1001",
PhoneNumber: "+65 99999999", FirstName: "ContactOwner",
FirstName: "Test", LastName: "User",
LastName: "User 1", }
} b, _ := json.Marshal(mockUser)
b, _ := json.Marshal(mockUser)
// Test // Test
w := httptest.NewRecorder() w := httptest.NewRecorder()
r := httptest.NewRequest("POST", "/user", bytes.NewBuffer(b)) r := httptest.NewRequest("POST", "/user", bytes.NewBuffer(b))
router.ServeHTTP(w, r) router.ServeHTTP(w, r)
assertCode(t, w, 200) assertCode(t, w, 200)
// Assert // Assert
got, want := new(User), mockUser got, want := new(User), mockUser
wantPhone, _ := ParsePhone(want.PhoneNumber) wantPhone, _ := ParsePhone(want.PhoneNumber)
json.NewDecoder(w.Body).Decode(got) json.NewDecoder(w.Body).Decode(got)
if got.FirstName != want.FirstName || got.LastName != want.LastName || got.PhoneNumber != wantPhone { if got.FirstName != want.FirstName || got.LastName != want.LastName || got.PhoneNumber != wantPhone {
t.Error("Wanted a User with same FirstName, LastName, PhoneNumber. Got something else") t.Error("Wanted a User with same FirstName, LastName, PhoneNumber. Got something else")
} }
assertDB(t, db, `SELECT * FROM "user" WHERE phone_number = '+65 9999 9999' AND first_name = 'Test' AND last_name = 'User 1'`) assertDB(t, db, `SELECT * FROM "user" WHERE phone_number = '+65 9999 9999' AND first_name = 'Test' AND last_name = 'User 1'`)
*/
} }
} }