review, next copyQuizRequest
This commit is contained in:
parent
10a83013e0
commit
77eb56a807
@ -5484,6 +5484,7 @@ func editQuizRequest(token string, body map[string]interface{}) (*http.Response,
|
|||||||
return http.DefaultClient.Do(req)
|
return http.DefaultClient.Do(req)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// отсмотрено
|
||||||
func TestEditQuiz_Success(t *testing.T) {
|
func TestEditQuiz_Success(t *testing.T) {
|
||||||
createResp, err := createQuizRequest(validToken, map[string]interface{}{
|
createResp, err := createQuizRequest(validToken, map[string]interface{}{
|
||||||
"name": "Квиз для редактирования",
|
"name": "Квиз для редактирования",
|
||||||
@ -5491,13 +5492,12 @@ func TestEditQuiz_Success(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer createResp.Body.Close()
|
defer createResp.Body.Close()
|
||||||
var createResult map[string]interface{}
|
var createResult model.Quiz
|
||||||
err = json.NewDecoder(createResp.Body).Decode(&createResult)
|
err = json.NewDecoder(createResp.Body).Decode(&createResult)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
quizID := createResult["id"]
|
|
||||||
|
|
||||||
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
||||||
"id": quizID,
|
"id": createResult.Id,
|
||||||
"name": "Обновленное название квиза",
|
"name": "Обновленное название квиза",
|
||||||
"desc": "Новое описание",
|
"desc": "Новое описание",
|
||||||
"status": "start",
|
"status": "start",
|
||||||
@ -5511,12 +5511,13 @@ func TestEditQuiz_Success(t *testing.T) {
|
|||||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||||
assert.Equal(t, "application/json", resp.Header.Get("Content-Type"))
|
assert.Equal(t, "application/json", resp.Header.Get("Content-Type"))
|
||||||
|
|
||||||
var result map[string]interface{}
|
var result quiz.UpdateResp
|
||||||
err = json.NewDecoder(resp.Body).Decode(&result)
|
err = json.NewDecoder(resp.Body).Decode(&result)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, quizID, result["updated"])
|
assert.Equal(t, createResult.Id, result.Updated)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// отсмотрено
|
||||||
func TestEditQuiz_OneField(t *testing.T) {
|
func TestEditQuiz_OneField(t *testing.T) {
|
||||||
createResp, err := createQuizRequest(validToken, map[string]interface{}{
|
createResp, err := createQuizRequest(validToken, map[string]interface{}{
|
||||||
"name": "Квиз для смены статуса",
|
"name": "Квиз для смены статуса",
|
||||||
@ -5524,25 +5525,25 @@ func TestEditQuiz_OneField(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer createResp.Body.Close()
|
defer createResp.Body.Close()
|
||||||
var createResult map[string]interface{}
|
var createResult model.Quiz
|
||||||
err = json.NewDecoder(createResp.Body).Decode(&createResult)
|
err = json.NewDecoder(createResp.Body).Decode(&createResult)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
quizID := createResult["id"]
|
|
||||||
|
|
||||||
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
||||||
"id": quizID,
|
"id": createResult.Id,
|
||||||
"status": "stop",
|
"status": "stop",
|
||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||||
|
|
||||||
var result map[string]interface{}
|
var result quiz.UpdateResp
|
||||||
err = json.NewDecoder(resp.Body).Decode(&result)
|
err = json.NewDecoder(resp.Body).Decode(&result)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, quizID, result["updated"])
|
assert.Equal(t, createResult.Id, result.Updated)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// отсмотрено
|
||||||
func TestEditQuiz_Auth(t *testing.T) {
|
func TestEditQuiz_Auth(t *testing.T) {
|
||||||
t.Run("NoToken", func(t *testing.T) {
|
t.Run("NoToken", func(t *testing.T) {
|
||||||
payload, err := json.Marshal(map[string]interface{}{
|
payload, err := json.Marshal(map[string]interface{}{
|
||||||
@ -5579,6 +5580,7 @@ func TestEditQuiz_Auth(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// отсмотрено
|
||||||
func TestEditQuiz_InputValidation(t *testing.T) {
|
func TestEditQuiz_InputValidation(t *testing.T) {
|
||||||
t.Run("MissingID", func(t *testing.T) {
|
t.Run("MissingID", func(t *testing.T) {
|
||||||
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
||||||
@ -5586,7 +5588,7 @@ func TestEditQuiz_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Contains(t, []int{http.StatusBadRequest, 422}, resp.StatusCode)
|
assert.Equal(t, http.StatusFailedDependency, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("InvalidID", func(t *testing.T) {
|
t.Run("InvalidID", func(t *testing.T) {
|
||||||
@ -5596,9 +5598,9 @@ func TestEditQuiz_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Contains(t, []int{http.StatusBadRequest, 422}, resp.StatusCode)
|
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
// todo нужен ответ 404
|
||||||
t.Run("NonExistentID", func(t *testing.T) {
|
t.Run("NonExistentID", func(t *testing.T) {
|
||||||
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
||||||
"id": 99999,
|
"id": 99999,
|
||||||
@ -5606,7 +5608,7 @@ func TestEditQuiz_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Contains(t, []int{http.StatusBadRequest, 422}, resp.StatusCode)
|
assert.Equal(t, http.StatusNotFound, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("NameTooLong", func(t *testing.T) {
|
t.Run("NameTooLong", func(t *testing.T) {
|
||||||
@ -5617,7 +5619,7 @@ func TestEditQuiz_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Contains(t, []int{http.StatusBadRequest, 422}, resp.StatusCode)
|
assert.Equal(t, http.StatusUnprocessableEntity, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("InvalidStatus", func(t *testing.T) {
|
t.Run("InvalidStatus", func(t *testing.T) {
|
||||||
@ -5627,7 +5629,7 @@ func TestEditQuiz_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Contains(t, []int{http.StatusBadRequest, 422}, resp.StatusCode)
|
assert.Equal(t, http.StatusNotAcceptable, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("InvalidFP", func(t *testing.T) {
|
t.Run("InvalidFP", func(t *testing.T) {
|
||||||
@ -5637,7 +5639,7 @@ func TestEditQuiz_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Contains(t, []int{http.StatusBadRequest, 422}, resp.StatusCode)
|
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("InvalidLimit", func(t *testing.T) {
|
t.Run("InvalidLimit", func(t *testing.T) {
|
||||||
@ -5647,10 +5649,11 @@ func TestEditQuiz_InputValidation(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
assert.Contains(t, []int{http.StatusBadRequest, 422}, resp.StatusCode)
|
assert.Equal(t, http.StatusBadRequest, resp.StatusCode)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// todo
|
||||||
func TestEditQuiz_Security(t *testing.T) {
|
func TestEditQuiz_Security(t *testing.T) {
|
||||||
t.Run("SQLInjection", func(t *testing.T) {
|
t.Run("SQLInjection", func(t *testing.T) {
|
||||||
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
||||||
@ -5677,6 +5680,7 @@ func TestEditQuiz_Security(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// отсмотрено
|
||||||
func TestEditQuiz_Performance(t *testing.T) {
|
func TestEditQuiz_Performance(t *testing.T) {
|
||||||
createResp, err := createQuizRequest(validToken, map[string]interface{}{
|
createResp, err := createQuizRequest(validToken, map[string]interface{}{
|
||||||
"name": "Квиз для теста производительности",
|
"name": "Квиз для теста производительности",
|
||||||
@ -5684,20 +5688,20 @@ func TestEditQuiz_Performance(t *testing.T) {
|
|||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer createResp.Body.Close()
|
defer createResp.Body.Close()
|
||||||
var createResult map[string]interface{}
|
var createResult model.Quiz
|
||||||
err = json.NewDecoder(createResp.Body).Decode(&createResult)
|
err = json.NewDecoder(createResp.Body).Decode(&createResult)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
quizID := createResult["id"]
|
|
||||||
|
|
||||||
t.Run("ResponseTime", func(t *testing.T) {
|
t.Run("ResponseTime", func(t *testing.T) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
||||||
"id": quizID,
|
"id": createResult.Id,
|
||||||
"name": "Быстрое обновление",
|
"name": "Быстрое обновление",
|
||||||
})
|
})
|
||||||
duration := time.Since(start)
|
duration := time.Since(start)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||||
assert.Less(t, duration.Milliseconds(), int64(500))
|
assert.Less(t, duration.Milliseconds(), int64(500))
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -5708,12 +5712,13 @@ func TestEditQuiz_Performance(t *testing.T) {
|
|||||||
go func(index int) {
|
go func(index int) {
|
||||||
defer wg.Done()
|
defer wg.Done()
|
||||||
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
resp, err := editQuizRequest(validToken, map[string]interface{}{
|
||||||
"id": quizID,
|
"id": createResult.Id,
|
||||||
"name": fmt.Sprintf("Load Test Quiz %d", index),
|
"name": fmt.Sprintf("Load Test Quiz %d", index),
|
||||||
})
|
})
|
||||||
if err == nil && resp != nil {
|
if err == nil && resp != nil {
|
||||||
resp.Body.Close()
|
resp.Body.Close()
|
||||||
}
|
}
|
||||||
|
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||||
}(i)
|
}(i)
|
||||||
}
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
Loading…
Reference in New Issue
Block a user