Fix failing logout tests

This commit is contained in:
2024-12-08 17:22:39 +01:00
parent 2268ea48f2
commit ed6ac312ed

View File

@@ -251,13 +251,13 @@ func TestAuthHandlers_Integration(t *testing.T) {
t.Run("logout edge cases", func(t *testing.T) { t.Run("logout edge cases", func(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
setup func(*http.Request) setup func(*http.Request, *testUser)
wantCode int wantCode int
}{ }{
{ {
name: "missing CSRF token", name: "missing CSRF token",
setup: func(req *http.Request) { setup: func(req *http.Request, tu *testUser) {
h.addAuthCookies(t, req, h.RegularTestUser) h.addAuthCookies(t, req, tu)
h.addCSRFCookie(t, req) h.addCSRFCookie(t, req)
// Deliberately not setting X-CSRF-Token header // Deliberately not setting X-CSRF-Token header
}, },
@@ -265,8 +265,8 @@ func TestAuthHandlers_Integration(t *testing.T) {
}, },
{ {
name: "mismatched CSRF token", name: "mismatched CSRF token",
setup: func(req *http.Request) { setup: func(req *http.Request, tu *testUser) {
h.addAuthCookies(t, req, h.RegularTestUser) h.addAuthCookies(t, req, tu)
h.addCSRFCookie(t, req) h.addCSRFCookie(t, req)
req.Header.Set("X-CSRF-Token", "wrong-token") req.Header.Set("X-CSRF-Token", "wrong-token")
}, },
@@ -274,7 +274,7 @@ func TestAuthHandlers_Integration(t *testing.T) {
}, },
{ {
name: "missing auth cookies", name: "missing auth cookies",
setup: func(req *http.Request) { setup: func(req *http.Request, tu *testUser) {
// No setup - testing completely unauthenticated request // No setup - testing completely unauthenticated request
}, },
wantCode: http.StatusUnauthorized, wantCode: http.StatusUnauthorized,
@@ -283,8 +283,12 @@ func TestAuthHandlers_Integration(t *testing.T) {
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
// Create a unique user for each test case
// Construct a unique email address from test name
uniqueUserEmail := strings.Replace(tt.name, " ", "", -1) + "@test.com"
logoutTestUser := h.createTestUser(t, uniqueUserEmail, "password123", models.RoleEditor)
req := h.newRequest(t, http.MethodPost, "/api/v1/auth/logout", nil) req := h.newRequest(t, http.MethodPost, "/api/v1/auth/logout", nil)
tt.setup(req) tt.setup(req, logoutTestUser)
rr := h.executeRequest(req) rr := h.executeRequest(req)
assert.Equal(t, tt.wantCode, rr.Code) assert.Equal(t, tt.wantCode, rr.Code)
}) })
@@ -293,14 +297,17 @@ func TestAuthHandlers_Integration(t *testing.T) {
}) })
t.Run("get current user", func(t *testing.T) { t.Run("get current user", func(t *testing.T) {
getTestUser := h.createTestUser(t, "testgetuser@test.com", "password123", models.RoleEditor)
t.Run("successful get current user", func(t *testing.T) { t.Run("successful get current user", func(t *testing.T) {
rr := h.makeRequest(t, http.MethodGet, "/api/v1/auth/me", nil, h.RegularTestUser) rr := h.makeRequest(t, http.MethodGet, "/api/v1/auth/me", nil, getTestUser)
require.Equal(t, http.StatusOK, rr.Code) require.Equal(t, http.StatusOK, rr.Code)
var user models.User var user models.User
err := json.NewDecoder(rr.Body).Decode(&user) err := json.NewDecoder(rr.Body).Decode(&user)
require.NoError(t, err) require.NoError(t, err)
assert.Equal(t, h.RegularTestUser.userModel.Email, user.Email) assert.Equal(t, getTestUser.userModel.Email, user.Email)
}) })
t.Run("auth edge cases", func(t *testing.T) { t.Run("auth edge cases", func(t *testing.T) {