diff --git a/contact_test.go b/contact_test.go index 2ebc6de..5a1e46e 100644 --- a/contact_test.go +++ b/contact_test.go @@ -18,9 +18,9 @@ func TestContact(t *testing.T) { h := NewHandler(db) 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) { @@ -43,6 +43,8 @@ func setupUsers(t *testing.T, db *sql.DB, router http.Handler) { }, } + resultUsers := []User{} + for _, user := range users { b, _ := json.Marshal(user) w := httptest.NewRecorder() @@ -50,39 +52,44 @@ func setupUsers(t *testing.T, db *sql.DB, router http.Handler) { router.ServeHTTP(w, r) 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) { return func(t *testing.T) { - /* - // Setup - mockUser := &User{ - PhoneNumber: "+65 99999999", - FirstName: "Test", - LastName: "User 1", - } - b, _ := json.Marshal(mockUser) + // Setup + mockUser := &User{ + PhoneNumber: "+65 9999 1001", + FirstName: "ContactOwner", + LastName: "User", + } + b, _ := json.Marshal(mockUser) - // Test - w := httptest.NewRecorder() - r := httptest.NewRequest("POST", "/user", bytes.NewBuffer(b)) + // Test + w := httptest.NewRecorder() + r := httptest.NewRequest("POST", "/user", bytes.NewBuffer(b)) - router.ServeHTTP(w, r) - assertCode(t, w, 200) + router.ServeHTTP(w, r) + assertCode(t, w, 200) - // Assert - got, want := new(User), mockUser - wantPhone, _ := ParsePhone(want.PhoneNumber) - json.NewDecoder(w.Body).Decode(got) - 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") - } + // Assert + got, want := new(User), mockUser + wantPhone, _ := ParsePhone(want.PhoneNumber) + json.NewDecoder(w.Body).Decode(got) + 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") + } - 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'`) } }