diff --git a/cmd/server/tests/sync_integration_test.go b/cmd/server/tests/sync_integration_test.go index 1350284..9dc5819 100644 --- a/cmd/server/tests/sync_integration_test.go +++ b/cmd/server/tests/sync_integration_test.go @@ -37,7 +37,7 @@ func setupSyncTestDB(t *testing.T) *database.Queries { _, _ = dbPool.Exec(ctx, "DELETE FROM media_items WHERE title LIKE 'Test %'") _, _ = dbPool.Exec(ctx, "DELETE FROM libraries WHERE name LIKE 'Test %'") _, _ = dbPool.Exec(ctx, "DELETE FROM devices WHERE device_name LIKE 'Test %'") - _, _ = dbPool.Exec(ctx, "DELETE FROM users WHERE email LIKE 'test%'") + _, _ = dbPool.Exec(ctx, "DELETE FROM users WHERE email LIKE 'test-sync%'") dbPool.Close() }) diff --git a/cmd/server/tests/test_helpers_test.go b/cmd/server/tests/test_helpers_test.go index 43e00a9..a79906d 100644 --- a/cmd/server/tests/test_helpers_test.go +++ b/cmd/server/tests/test_helpers_test.go @@ -558,11 +558,15 @@ func setupTestServer(t *testing.T) *TestServerSetup { ctx := context.Background() - // 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. + // Delete transient test users but preserve the dev admin user + // testuser@tests.bookhoard.internal is the shared dev admin — deleting it + // triggers ON DELETE SET NULL on libraries.created_by_admin_id allUsers, err := queries.ListUsers(ctx) if err == nil { for _, user := range allUsers { + if user.Email == "testuser@tests.bookhoard.internal" { + continue + } if strings.HasSuffix(user.Email, "@example.com") || strings.HasSuffix(user.Email, "@tests.bookhoard.internal") { queries.DeleteUser(ctx, user.ID) }