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:
@@ -24,7 +24,7 @@ func TestSystemSettingsHandler(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("GET /api/libraries/scan-settings - Get settings as non-admin", func(t *testing.T) {
|
||||
token := loginRegularUser(t, setup.Server, setup.DB)
|
||||
token := setup.RegularToken
|
||||
|
||||
req := httptest.NewRequest("GET", "/api/libraries/scan-settings", nil)
|
||||
req.Header.Set("Authorization", "Bearer "+token)
|
||||
@@ -35,7 +35,7 @@ func TestSystemSettingsHandler(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("GET /api/libraries/scan-settings - Get settings as admin", func(t *testing.T) {
|
||||
token := loginAdminUser(t, setup.Server, setup.DB)
|
||||
token := setup.Token
|
||||
|
||||
req := httptest.NewRequest("GET", "/api/libraries/scan-settings", nil)
|
||||
req.Header.Set("Authorization", "Bearer "+token)
|
||||
@@ -67,7 +67,7 @@ func TestSystemSettingsHandler(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("PUT /api/libraries/scan-settings - Update as non-admin", func(t *testing.T) {
|
||||
token := loginRegularUser(t, setup.Server, setup.DB)
|
||||
token := setup.RegularToken
|
||||
|
||||
payload := map[string]interface{}{
|
||||
"scan_frequency_minutes": 30,
|
||||
@@ -85,7 +85,7 @@ func TestSystemSettingsHandler(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("PUT /api/libraries/scan-settings - Update with invalid frequency", func(t *testing.T) {
|
||||
token := loginAdminUser(t, setup.Server, setup.DB)
|
||||
token := setup.Token
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
@@ -117,7 +117,7 @@ func TestSystemSettingsHandler(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("PUT /api/libraries/scan-settings - Update with missing required field", func(t *testing.T) {
|
||||
token := loginAdminUser(t, setup.Server, setup.DB)
|
||||
token := setup.Token
|
||||
|
||||
payload := map[string]interface{}{
|
||||
"auto_scan_enabled": true,
|
||||
@@ -134,7 +134,7 @@ func TestSystemSettingsHandler(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("PUT /api/libraries/scan-settings - Update with valid data", func(t *testing.T) {
|
||||
token := loginAdminUser(t, setup.Server, setup.DB)
|
||||
token := setup.Token
|
||||
|
||||
testCases := []struct {
|
||||
name string
|
||||
@@ -174,7 +174,7 @@ func TestSystemSettingsHandler(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("PUT /api/libraries/scan-settings - Update with invalid JSON", func(t *testing.T) {
|
||||
token := loginAdminUser(t, setup.Server, setup.DB)
|
||||
token := setup.Token
|
||||
|
||||
invalidJSON := []byte(`{scan_frequency_minutes: 60, auto_scan_enabled: true}`)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user