This commit is contained in:
pasha1coil 2025-07-14 10:45:19 +03:00
parent 8a217d9395
commit 291b50d131

@ -217,38 +217,6 @@ func TestGetAccount_BoundaryCases(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestGetAccount_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
req, err := http.NewRequest("GET", baseURL+"/account/get", nil)
assert.NoError(t, err)
req.Header.Set("Authorization", "Bearer "+"error_simulation_token")
resp, err := http.DefaultClient.Do(req)
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond}
req, err := http.NewRequest("GET", baseURL+"/account/get", nil)
assert.NoError(t, err)
req.Header.Set("Authorization", "Bearer "+validToken)
_, err = client.Do(req)
assert.Error(t, err)
assert.Contains(t, err.Error(), "timeout")
})
}
func TestGetAccount_SpecialCases(t *testing.T) { func TestGetAccount_SpecialCases(t *testing.T) {
t.Run("AccountWithoutPrivileges", func(t *testing.T) { t.Run("AccountWithoutPrivileges", func(t *testing.T) {
req, err := http.NewRequest("GET", baseURL+"/account/get", nil) req, err := http.NewRequest("GET", baseURL+"/account/get", nil)
@ -421,20 +389,6 @@ func TestCreateAccount(t *testing.T) {
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, unicodeUserID, result["user_id"]) assert.Equal(t, unicodeUserID, result["user_id"])
}) })
// todo error_simulation_token
t.Run("ErrorHandling_InternalServerError", func(t *testing.T) {
resp := createAccountRequest(t, "error_simulation_token", map[string]interface{}{
"user_id": "test_user",
})
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err := json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("ErrorHandling_Timeout", func(t *testing.T) { t.Run("ErrorHandling_Timeout", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -677,25 +631,7 @@ func TestDeleteAccount_BoundaryCases(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestDeleteAccount_ErrorHandling(t *testing.T) { func TestDeleteAccount_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
req, err := http.NewRequest("DELETE", baseURL+"/account/delete", nil)
assert.NoError(t, err)
req.Header.Set("Authorization", "Bearer "+"error_simulation_token")
resp, err := http.DefaultClient.Do(req)
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -985,33 +921,7 @@ func TestGetAccounts_BoundaryCases(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestGetAccounts_ErrorHandling(t *testing.T) { func TestGetAccounts_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
// Имитируем сбой базы данных
body := map[string]interface{}{
"limit": 10,
"page": 1,
}
b, err := json.Marshal(body)
assert.NoError(t, err)
req, err := http.NewRequest("GET", baseURL+"/accounts", bytes.NewReader(b))
assert.NoError(t, err)
req.Header.Set("Authorization", "Bearer "+"error_simulation_token")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -1303,29 +1213,7 @@ func TestGetPrivilege_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestGetPrivilege_ErrorHandling(t *testing.T) { func TestGetPrivilege_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
body := map[string]string{"userId": existingUserID}
data, err := json.Marshal(body)
assert.NoError(t, err)
req, err := http.NewRequest("GET", baseURL+"/privilege/"+existingUserID, bytes.NewBuffer(data))
assert.NoError(t, err)
req.Header.Set("Authorization", "Bearer "+"error_simulation_token")
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -1535,21 +1423,7 @@ func TestDeleteAccountByUserID_SQLInjection_XSS(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestDeleteAccountByUserID_ErrorHandling(t *testing.T) { func TestDeleteAccountByUserID_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := deleteAccountByUserIDRequest("error_simulation_token", map[string]string{"userId": userIDForDelete})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -1740,20 +1614,7 @@ func TestManualDone_Security(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestManualDone_ErrorHandling(t *testing.T) { func TestManualDone_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := manualDoneRequest("error_simulation_token", map[string]string{"id": testUserID})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -1984,25 +1845,7 @@ func TestCreateLeadTarget_BoundaryCases(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestCreateLeadTarget_ErrorHandling(t *testing.T) { func TestCreateLeadTarget_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := createLeadTargetRequest("error_simulation_token", map[string]interface{}{
"type": "mail",
"quizID": 123,
"target": "example@mail.com",
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -2325,21 +2168,7 @@ func TestUpdateLeadTarget_BoundaryCases(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestDeleteLeadTarget_ErrorHandling(t *testing.T) { func TestDeleteLeadTarget_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := deleteLeadTargetRequest("error_simulation_token", "123")
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -2556,21 +2385,7 @@ func TestDeleteLeadTarget_AlreadyDeleted(t *testing.T) {
assert.Equal(t, http.StatusOK, resp2.StatusCode) assert.Equal(t, http.StatusOK, resp2.StatusCode)
} }
// todo error_simulation_token
func TestGetLeadTargetByQuizID_ErrorHandling(t *testing.T) { func TestGetLeadTargetByQuizID_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := getLeadTargetByQuizIDRequest("error_simulation_token", "123")
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -2752,25 +2567,7 @@ func TestGetLeadTargetByQuizID_DeletedTarget(t *testing.T) {
assert.Equal(t, http.StatusNotFound, resp.StatusCode) assert.Equal(t, http.StatusNotFound, resp.StatusCode)
} }
// todo error_simulation_token
func TestCreateQuestion_ErrorHandling(t *testing.T) { func TestCreateQuestion_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := createQuestionRequest("error_simulation_token", map[string]interface{}{
"quiz_id": 12345,
"title": "Test Question",
"type": "variant",
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -3054,24 +2851,7 @@ func TestCreateQuestion_BoundaryCases(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestGetQuestionList_ErrorHandling(t *testing.T) { func TestGetQuestionList_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := getQuestionListRequest("error_simulation_token", map[string]interface{}{
"limit": 10,
"page": 1,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -3416,24 +3196,7 @@ func TestGetQuestionList_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestEditQuestion_ErrorHandling(t *testing.T) { func TestEditQuestion_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := editQuestionRequest("error_simulation_token", map[string]interface{}{
"id": 123,
"title": "Test Question",
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -3778,24 +3541,7 @@ func TestEditQuestion_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestCopyQuestion_ErrorHandling(t *testing.T) { func TestCopyQuestion_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := copyQuestionRequest("error_simulation_token", map[string]interface{}{
"id": 101,
"quiz_id": 202,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
@ -4099,23 +3845,7 @@ func TestCopyQuestion_OriginalPreserved(t *testing.T) {
assert.Equal(t, originalTitle, copyResult["title"]) assert.Equal(t, originalTitle, copyResult["title"])
} }
// todo error_simulation_token
func TestGetQuestionHistory_ErrorHandling(t *testing.T) { func TestGetQuestionHistory_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := getQuestionHistoryRequest("error_simulation_token", map[string]interface{}{
"id": 101,
"l": 10,
"p": 1,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
payload, err := json.Marshal(map[string]interface{}{ payload, err := json.Marshal(map[string]interface{}{
@ -4496,21 +4226,7 @@ func TestGetQuestionHistory_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestDeleteQuestion_ErrorHandling(t *testing.T) { func TestDeleteQuestion_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := deleteQuestionRequest("error_simulation_token", map[string]interface{}{
"id": 101,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
payload, err := json.Marshal(map[string]interface{}{ payload, err := json.Marshal(map[string]interface{}{
@ -4753,21 +4469,7 @@ func TestDeleteQuestion_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestCreateQuiz_ErrorHandling(t *testing.T) { func TestCreateQuiz_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := createQuizRequest("error_simulation_token", map[string]interface{}{
"name": "Test Quiz",
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
payload, err := json.Marshal(map[string]interface{}{ payload, err := json.Marshal(map[string]interface{}{
@ -5117,22 +4819,7 @@ func TestCreateQuiz_SuperQuiz(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestGetQuizList_ErrorHandling(t *testing.T) { func TestGetQuizList_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := getQuizListRequest("error_simulation_token", map[string]interface{}{
"limit": 10,
"page": 1,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
payload, err := json.Marshal(map[string]interface{}{ payload, err := json.Marshal(map[string]interface{}{
@ -5593,23 +5280,6 @@ func TestGetQuizList_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestEditQuiz_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := editQuizRequest("error_simulation_token", map[string]interface{}{
"id": 101,
"name": "Test Quiz",
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
}
func editQuizRequest(token string, body map[string]interface{}) (*http.Response, error) { func editQuizRequest(token string, body map[string]interface{}) (*http.Response, error) {
payload, err := json.Marshal(body) payload, err := json.Marshal(body)
if err != nil { if err != nil {
@ -5860,22 +5530,6 @@ func TestEditQuiz_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestCopyQuiz_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := copyQuizRequest("error_simulation_token", map[string]interface{}{
"id": 101,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
}
func copyQuizRequest(token string, body map[string]interface{}) (*http.Response, error) { func copyQuizRequest(token string, body map[string]interface{}) (*http.Response, error) {
payload, err := json.Marshal(body) payload, err := json.Marshal(body)
if err != nil { if err != nil {
@ -6033,23 +5687,7 @@ func TestCopyQuiz_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestGetQuizHistory_ErrorHandling(t *testing.T) { func TestGetQuizHistory_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := getQuizHistoryRequest("error_simulation_token", map[string]interface{}{
"id": 101,
"l": 10,
"p": 1,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
payload, err := json.Marshal(map[string]interface{}{ payload, err := json.Marshal(map[string]interface{}{
@ -6386,21 +6024,7 @@ func TestGetQuizHistory_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestDeleteQuiz_ErrorHandling(t *testing.T) { func TestDeleteQuiz_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := deleteQuizRequest("error_simulation_token", map[string]interface{}{
"id": 101,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
payload, err := json.Marshal(map[string]interface{}{ payload, err := json.Marshal(map[string]interface{}{
@ -6599,21 +6223,7 @@ func TestDeleteQuiz_Performance(t *testing.T) {
}) })
} }
// todo error_simulation_token
func TestArchiveQuiz_ErrorHandling(t *testing.T) { func TestArchiveQuiz_ErrorHandling(t *testing.T) {
t.Run("InternalServerError", func(t *testing.T) {
resp, err := archiveQuizRequest("error_simulation_token", map[string]interface{}{
"id": 101,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusInternalServerError, resp.StatusCode)
var errorResponse map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&errorResponse)
assert.NoError(t, err)
assert.Contains(t, errorResponse, "error")
})
t.Run("TimeoutHandling", func(t *testing.T) { t.Run("TimeoutHandling", func(t *testing.T) {
client := &http.Client{Timeout: 1 * time.Millisecond} client := &http.Client{Timeout: 1 * time.Millisecond}
payload, err := json.Marshal(map[string]interface{}{ payload, err := json.Marshal(map[string]interface{}{