From 0853de877117f563d0d01566a519c938356a6529 Mon Sep 17 00:00:00 2001 From: Michael Hunteman Date: Sun, 1 Sep 2024 12:30:45 -0700 Subject: Test invalid users --- server/test/guest_test.go | 90 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 79 insertions(+), 11 deletions(-) (limited to 'server/test') diff --git a/server/test/guest_test.go b/server/test/guest_test.go index a5e8e8d..5bb77ff 100644 --- a/server/test/guest_test.go +++ b/server/test/guest_test.go @@ -66,7 +66,8 @@ func TestUpdateRSVP(test *testing.T) { func logInGuest(guestHandler *guest.GuestHandler, test *testing.T) guest.Login { response := httptest.NewRecorder() loginRequest, err := http.NewRequest(http.MethodPost, - "http://localhost:8080/guests/login", strings.NewReader(getName())) + fmt.Sprintf("http://%s:8080/guests/login", host), strings.NewReader(getName())) + if err != nil { test.Error(err) } @@ -81,8 +82,8 @@ func logInGuest(guestHandler *guest.GuestHandler, test *testing.T) guest.Login { func addPartyMember(guestHandler *guest.GuestHandler, token string, test *testing.T) { response := httptest.NewRecorder() - putRequest, err := http.NewRequest(http.MethodPut, "http://localhost:8080/guests/1", - strings.NewReader(getUpdatedGuest())) + putRequest, err := http.NewRequest(http.MethodPut, + fmt.Sprintf("http://%s:8080/guests/1", host), strings.NewReader(getUpdatedGuest())) if err != nil { test.Error(err) } @@ -94,7 +95,7 @@ func addPartyMember(guestHandler *guest.GuestHandler, token string, test *testin func logInAdmin(adminHandler *admin.AdminHandler, test *testing.T) admin.Login { response := httptest.NewRecorder() loginRequest, err := http.NewRequest(http.MethodPost, - "http://localhost:8080/admin/login", strings.NewReader(getCredentials())) + fmt.Sprintf("http://%s:8080/admin/login", host), strings.NewReader(getCredentials())) if err != nil { test.Error(err) } @@ -109,7 +110,8 @@ func logInAdmin(adminHandler *admin.AdminHandler, test *testing.T) admin.Login { func getGuests(guestHandler *guest.GuestHandler, token string, test *testing.T) []guest.Guest { response := httptest.NewRecorder() - getRequest, err := http.NewRequest(http.MethodGet, "http://localhost:8080/guests/", nil) + getRequest, err := http.NewRequest(http.MethodGet, + fmt.Sprintf("http://%s:8080/guests/", host), nil) if err != nil { test.Error(err) } @@ -125,8 +127,8 @@ func getGuests(guestHandler *guest.GuestHandler, token string, test *testing.T) func deletePartyMember(guestHandler *guest.GuestHandler, token string, test *testing.T) { response := httptest.NewRecorder() - putRequest, err := http.NewRequest(http.MethodPut, "http://localhost:8080/guests/1", - strings.NewReader(getEmptyGuest())) + putRequest, err := http.NewRequest(http.MethodPut, + fmt.Sprintf("http://%s:8080/guests/1", host), strings.NewReader(getEmptyGuest())) if err != nil { test.Error(err) } @@ -156,7 +158,8 @@ func getName() string { } func getCredentials() string { - return fmt.Sprintf("{ \"username\": \"mhunteman\", \"password\": \"%s\"}", os.Getenv("PASS")) + return fmt.Sprintf("{ \"username\": \"mhunteman\", \"password\": \"%s\"}", + os.Getenv("PASS")) } func getUpdatedGuest() string { @@ -202,7 +205,8 @@ func TestAddGuest(test *testing.T) { func deleteGuest(guestHandler *guest.GuestHandler, token string, test *testing.T) { response := httptest.NewRecorder() - deleteRequest, err := http.NewRequest(http.MethodDelete, "http://localhost:8080/guests/1", nil) + deleteRequest, err := http.NewRequest(http.MethodDelete, + fmt.Sprintf("http://%s:8080/guests/1", host), nil) if err != nil { test.Error(err) } @@ -213,8 +217,8 @@ func deleteGuest(guestHandler *guest.GuestHandler, token string, test *testing.T func postGuest(guestHandler *guest.GuestHandler, token string, test *testing.T) { response := httptest.NewRecorder() - putRequest, err := http.NewRequest(http.MethodPost, "http://localhost:8080/guests/", - strings.NewReader(getEmptyGuest())) + putRequest, err := http.NewRequest(http.MethodPost, + fmt.Sprintf("http://%s:8080/guests/", host), strings.NewReader(getEmptyGuest())) if err != nil { test.Error(err) } @@ -222,3 +226,67 @@ func postGuest(guestHandler *guest.GuestHandler, token string, test *testing.T) guestHandler.ServeHTTP(response, putRequest) assertEquals(test, response.Result().StatusCode, 200) } + +func TestInvalidGuest(test *testing.T) { + databasePool, err := pgxpool.New(context.Background(), + fmt.Sprintf("postgres://%s:%s@%s:%s/%s", user, password, host, port, database)) + if err != nil { + test.Error(err) + } + defer databasePool.Close() + guestStore := guest.NewStore(databasePool) + guestHandler := guest.NewGuestHandler(guestStore) + + logInInvalidGuest(guestHandler, test) + updateInvalidGuest(guestHandler, "", test) +} + +func logInInvalidGuest(guestHandler *guest.GuestHandler, test *testing.T) { + response := httptest.NewRecorder() + loginRequest, err := http.NewRequest(http.MethodPost, + fmt.Sprintf("http://%s:8080/guests/login", host), strings.NewReader("{}")) + + if err != nil { + test.Error(err) + } + guestHandler.ServeHTTP(response, loginRequest) + assertEquals(test, response.Result().StatusCode, 401) +} + +func updateInvalidGuest(guestHandler *guest.GuestHandler, token string, test *testing.T) { + response := httptest.NewRecorder() + putRequest, err := http.NewRequest(http.MethodPut, + fmt.Sprintf("http://%s:8080/guests/1", host), strings.NewReader(getUpdatedGuest())) + if err != nil { + test.Error(err) + } + putRequest.Header.Set("Authorization", token) + guestHandler.ServeHTTP(response, putRequest) + assertEquals(test, response.Result().StatusCode, 400) +} + +func TestInvalidAdmin(test *testing.T) { + databasePool, err := pgxpool.New(context.Background(), + fmt.Sprintf("postgres://%s:%s@%s:%s/%s", user, password, host, port, database)) + if err != nil { + test.Error(err) + } + defer databasePool.Close() + guestStore := guest.NewStore(databasePool) + adminStore := admin.NewStore(databasePool) + adminHandler := admin.NewAdminHandler(adminStore, guestStore) + + logInInvalidAdmin(adminHandler, "", test) +} + +func logInInvalidAdmin(adminHandler *admin.AdminHandler, token string, test *testing.T) { + response := httptest.NewRecorder() + putRequest, err := http.NewRequest(http.MethodPost, + fmt.Sprintf("http://%s:8080/admin/login", host), strings.NewReader("{}")) + if err != nil { + test.Error(err) + } + putRequest.Header.Set("Authorization", token) + adminHandler.ServeHTTP(response, putRequest) + assertEquals(test, response.Result().StatusCode, 401) +} -- cgit v1.2.3