test: improve test isolation and setup management

Add Token and RegularToken fields to TestServerSetup for pre-authenticated
access. Update setupTestServer to create fresh users with valid tokens at
initialization time. Simplify createTestMediaItemID to use setup.Token.
Remove loginTestUser, loginRegularUser, loginAdminUser functions in favor
of setup.Token/setup.RegularToken. Update createTestUserOnce and
getTestUserID/getRegularUserID to be idempotent. Update all test files to
use setup.Token instead of calling login helpers.
This commit is contained in:
2026-02-22 01:57:22 -05:00
parent 9a09161f24
commit f54508e4dd
16 changed files with 819 additions and 793 deletions
+19 -20
View File
@@ -16,7 +16,6 @@ import (
// TestMediaBulkOperations tests bulk media operations
func TestMediaBulkOperations(t *testing.T) {
setup := setupTestServer(t)
token := loginTestUser(t, setup.Server, setup.DB)
t.Run("BulkDeleteBooks_WithoutAuth", func(t *testing.T) {
mediaIDs := []string{uuid.New().String()}
@@ -54,7 +53,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-delete", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -72,7 +71,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-delete", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -91,8 +90,8 @@ func TestMediaBulkOperations(t *testing.T) {
})
t.Run("BulkDeleteBooks_WithValidBooks", func(t *testing.T) {
mediaID1 := createTestMediaItemID(t, setup.Server)
mediaID2 := createTestMediaItemID(t, setup.Server)
mediaID1 := createTestMediaItemID(t, setup)
mediaID2 := createTestMediaItemID(t, setup)
mediaID3 := uuid.New().String()
req := map[string]interface{}{
@@ -102,7 +101,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-delete", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -126,7 +125,7 @@ func TestMediaBulkOperations(t *testing.T) {
// Send invalid JSON
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-delete", bytes.NewBuffer([]byte("invalid json")))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -175,7 +174,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-update", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -200,7 +199,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-update", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -219,8 +218,8 @@ func TestMediaBulkOperations(t *testing.T) {
})
t.Run("BulkUpdateBooks_UpdateTags", func(t *testing.T) {
mediaID1 := createTestMediaItemID(t, setup.Server)
mediaID2 := createTestMediaItemID(t, setup.Server)
mediaID1 := createTestMediaItemID(t, setup)
mediaID2 := createTestMediaItemID(t, setup)
req := map[string]interface{}{
"media_item_updates": []map[string]interface{}{
@@ -242,7 +241,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-update", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -263,10 +262,10 @@ func TestMediaBulkOperations(t *testing.T) {
})
t.Run("BulkUpdateBooks_UpdateReadingStatus", func(t *testing.T) {
mediaID1 := createTestMediaItemID(t, setup.Server)
mediaID2 := createTestMediaItemID(t, setup.Server)
mediaID3 := createTestMediaItemID(t, setup.Server)
mediaID4 := createTestMediaItemID(t, setup.Server)
mediaID1 := createTestMediaItemID(t, setup)
mediaID2 := createTestMediaItemID(t, setup)
mediaID3 := createTestMediaItemID(t, setup)
mediaID4 := createTestMediaItemID(t, setup)
req := map[string]interface{}{
"media_item_updates": []map[string]interface{}{
@@ -300,7 +299,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-update", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -330,7 +329,7 @@ func TestMediaBulkOperations(t *testing.T) {
})
t.Run("BulkUpdateBooks_UpdateMultipleFields", func(t *testing.T) {
mediaID1 := createTestMediaItemID(t, setup.Server)
mediaID1 := createTestMediaItemID(t, setup)
req := map[string]interface{}{
"media_item_updates": []map[string]interface{}{
@@ -348,7 +347,7 @@ func TestMediaBulkOperations(t *testing.T) {
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-update", bytes.NewBuffer(body))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)
@@ -367,7 +366,7 @@ func TestMediaBulkOperations(t *testing.T) {
// Send invalid JSON
httpReq, _ := http.NewRequest("POST", setup.Server.URL+"/api/media-items/bulk-update", bytes.NewBuffer([]byte("invalid json")))
httpReq.Header.Set("Content-Type", "application/json")
httpReq.Header.Set("Authorization", "Bearer "+token)
httpReq.Header.Set("Authorization", "Bearer "+setup.Token)
client := &http.Client{}
resp, err := client.Do(httpReq)