diff --git a/cmd/server/tests/test_helpers.go b/cmd/server/tests/test_helpers.go index b24b425..4f41ff3 100644 --- a/cmd/server/tests/test_helpers.go +++ b/cmd/server/tests/test_helpers.go @@ -212,13 +212,13 @@ func setupDeviceTest(t *testing.T) *TestDeviceSetup { // createTestUserOnce returns the pre-created test user info func createTestUserOnce(t *testing.T, db *database.Queries) UserTestData { ctx := context.Background() - user, err := db.GetUserByEmail(ctx, "testuser@example.com") + user, err := db.GetUserByEmail(ctx, "testuser@tests.bookhoard.internal") require.NoError(t, err, "Test user should exist (created by setupTestServer)") userUUID, err := uuid.FromBytes(user.ID.Bytes[0:16]) require.NoError(t, err, "Should parse user UUID") return UserTestData{ ID: userUUID, - Email: "testuser@example.com", + Email: "testuser@tests.bookhoard.internal", Username: "testuser", Password: "Test@Pass123!", } @@ -228,7 +228,7 @@ func createTestUserOnce(t *testing.T, db *database.Queries) UserTestData { func createRegularUserOnce(t *testing.T, db *database.Queries) UserTestData { ctx := context.Background() uniqueID := uuid.New().String()[:8] - email := fmt.Sprintf("regularuser-%s@example.com", uniqueID) + email := fmt.Sprintf("regularuser-%s@tests.bookhoard.internal", uniqueID) username := fmt.Sprintf("regularuser-%s", uniqueID) passwordHash := "$2a$10$JjAtK7PPa1WexQC3AUGe8OXLeuseZ/haN1Mz7emMo6CfOvMiTVXWq" @@ -518,18 +518,21 @@ func setupTestServer(t *testing.T) *TestServerSetup { ctx := context.Background() - // Delete existing test users if they exist (cascades to delete collections, media items, etc.) - for _, email := range []string{"testuser@example.com", "testregularuser@example.com"} { - existingUser, err := queries.GetUserByEmail(ctx, email) - if err == nil { - queries.DeleteUser(ctx, existingUser.ID) + // Delete ALL test users (any user with test email domains) to ensure clean state + // This handles users created during tests that may have been promoted to admin, etc. + allUsers, err := queries.ListUsers(ctx) + if err == nil { + for _, user := range allUsers { + if strings.HasSuffix(user.Email, "@example.com") || strings.HasSuffix(user.Email, "@tests.bookhoard.internal") { + queries.DeleteUser(ctx, user.ID) + } } } // Create fresh admin test user passwordHash := "$2a$10$JjAtK7PPa1WexQC3AUGe8OXLeuseZ/haN1Mz7emMo6CfOvMiTVXWq" adminUser, err := queries.CreateUser(ctx, database.CreateUserParams{ - Email: "testuser@example.com", + Email: "testuser@tests.bookhoard.internal", Username: "testuser", PasswordHash: passwordHash, FirstName: pgtype.Text{String: "Test", Valid: true}, @@ -544,7 +547,7 @@ func setupTestServer(t *testing.T) *TestServerSetup { // Create fresh regular test user regularUser, err := queries.CreateUser(ctx, database.CreateUserParams{ - Email: "testregularuser@example.com", + Email: "testregularuser@tests.bookhoard.internal", Username: "testregularuser", PasswordHash: passwordHash, FirstName: pgtype.Text{String: "Regular", Valid: true}, @@ -558,8 +561,8 @@ func setupTestServer(t *testing.T) *TestServerSetup { createDefaultCollectionsForUser(t, queries, pgtype.UUID{Bytes: regularUUID, Valid: true}) // Login to get tokens - adminToken := loginWithCredentials(t, ts, "testuser@example.com", "Test@Pass123!") - regularToken := loginWithCredentials(t, ts, "testregularuser@example.com", "Test@Pass123!") + adminToken := loginWithCredentials(t, ts, "testuser@tests.bookhoard.internal", "Test@Pass123!") + regularToken := loginWithCredentials(t, ts, "testregularuser@tests.bookhoard.internal", "Test@Pass123!") // Create TestServerSetup struct with all resources setup := &TestServerSetup{ @@ -615,7 +618,7 @@ func loginWithCredentials(t *testing.T, ts *httptest.Server, email, password str func getTestUserID(t *testing.T, db *database.Queries) uuid.UUID { ctx := context.Background() - user, err := db.GetUserByEmail(ctx, "testuser@example.com") + user, err := db.GetUserByEmail(ctx, "testuser@tests.bookhoard.internal") require.NoError(t, err, "Test user should exist") userUUID, err := uuid.FromBytes(user.ID.Bytes[:]) require.NoError(t, err, "Failed to parse user UUID") @@ -624,7 +627,7 @@ func getTestUserID(t *testing.T, db *database.Queries) uuid.UUID { func getRegularUserID(t *testing.T, db *database.Queries) uuid.UUID { ctx := context.Background() - user, err := db.GetUserByEmail(ctx, "testregularuser@example.com") + user, err := db.GetUserByEmail(ctx, "testregularuser@tests.bookhoard.internal") require.NoError(t, err, "Regular user should exist") userUUID, err := uuid.FromBytes(user.ID.Bytes[:]) require.NoError(t, err, "Failed to parse user UUID")