fix(tests): protect dev admin from test cleanup, use isolated test names
Tests were deleting the development admin user, causing ON DELETE SET NULL to cascade and set created_by_admin_id to NULL on all libraries. - test_helpers: skip deletion of testuser@tests.bookhoard.internal - sync_integration_test: use test-sync% prefix for isolated test data
This commit is contained in:
@@ -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 media_items WHERE title LIKE 'Test %'")
|
||||||
_, _ = dbPool.Exec(ctx, "DELETE FROM libraries WHERE name 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 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()
|
dbPool.Close()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -558,11 +558,15 @@ func setupTestServer(t *testing.T) *TestServerSetup {
|
|||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
|
|
||||||
// Delete ALL test users (any user with test email domains) to ensure clean state
|
// Delete transient test users but preserve the dev admin user
|
||||||
// This handles users created during tests that may have been promoted to admin, etc.
|
// 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)
|
allUsers, err := queries.ListUsers(ctx)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
for _, user := range allUsers {
|
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") {
|
if strings.HasSuffix(user.Email, "@example.com") || strings.HasSuffix(user.Email, "@tests.bookhoard.internal") {
|
||||||
queries.DeleteUser(ctx, user.ID)
|
queries.DeleteUser(ctx, user.ID)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user