summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hunteman <michael@huntm.net>2024-09-01 12:30:45 -0700
committerMichael Hunteman <michael@huntm.net>2024-09-01 12:30:45 -0700
commit0853de877117f563d0d01566a519c938356a6529 (patch)
tree563691b91f839be5fc7c896692f0a58248f1e7bc
parentbf45c312cee85dfa52d3993c662208130e9be8dd (diff)
Test invalid users
-rw-r--r--server/test/guest_test.go90
1 files changed, 79 insertions, 11 deletions
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)
+}