fix tests GetQuizList

This commit is contained in:
pasha1coil 2025-07-28 17:30:07 +03:00
parent c3d6d46c38
commit ee8843288c

@ -5069,7 +5069,7 @@ func getQuizListRequest(token string, body map[string]interface{}) (*http.Respon
return http.DefaultClient.Do(req)
}
// todo чекнуть запрос в бд что то не то res [] 27 ! <nil> ? pq: argument of OFFSET must be type bigint, not type text "sessions_count": converting NULL to uint64 is unsupported
// отсмотрено
func TestGetQuizList_Success(t *testing.T) {
quizNames := []string{"Квиз по географии", "Квиз по истории", "Квиз по математике"}
var quizIDs []uint64
@ -5091,7 +5091,7 @@ func TestGetQuizList_Success(t *testing.T) {
t.Run("BasicList", func(t *testing.T) {
resp, err := getQuizListRequest(validToken, map[string]interface{}{
"limit": 5,
"page": 1,
"page": 0,
"status": "start",
})
assert.NoError(t, err)
@ -5120,7 +5120,7 @@ func TestGetQuizList_Success(t *testing.T) {
resp, err := getQuizListRequest(validToken, map[string]interface{}{
"limit": 10,
"page": 1,
"search": "география",
"search": "географии",
"status": "start",
})
assert.NoError(t, err)
@ -5140,7 +5140,7 @@ func TestGetQuizList_Success(t *testing.T) {
assert.True(t, ok)
name, ok := quiz["name"].(string)
assert.True(t, ok)
assert.Contains(t, strings.ToLower(name), "география")
assert.Contains(t, strings.ToLower(name), "географии")
}
})
}
@ -5336,12 +5336,12 @@ func TestGetQuizList_Pagination(t *testing.T) {
})
}
// todo res [] 0 ! pq: syntax error in tsquery: "Filter Test" ? pq: argument of LIMIT must be type bigint, not type text
// отсмотрено
func TestGetQuizList_Filters(t *testing.T) {
statuses := []string{"draft", "start", "stop", "template"}
for _, status := range statuses {
resp, err := createQuizRequest(validToken, map[string]interface{}{
"name": fmt.Sprintf("Filter Test Quiz %s", status),
"name": fmt.Sprintf("тест по фильтру %s", status),
"status": status,
})
assert.NoError(t, err)
@ -5356,40 +5356,34 @@ func TestGetQuizList_Filters(t *testing.T) {
defer resp.Body.Close()
assert.Equal(t, http.StatusOK, resp.StatusCode)
var result map[string]interface{}
var result quiz.GetQuizListResp
err = json.NewDecoder(resp.Body).Decode(&result)
assert.NoError(t, err)
items, ok := result["items"].([]interface{})
assert.True(t, ok)
items := result.Items
for _, item := range items {
quiz, ok := item.(map[string]interface{})
assert.True(t, ok)
assert.Equal(t, "draft", quiz["status"])
assert.Equal(t, "draft", item.Status)
}
})
t.Run("SearchFilter", func(t *testing.T) {
resp, err := getQuizListRequest(validToken, map[string]interface{}{
"search": "Filter Test",
"search": "тест",
"limit": 5,
"page": 0,
})
assert.NoError(t, err)
defer resp.Body.Close()
assert.Equal(t, http.StatusOK, resp.StatusCode)
var result map[string]interface{}
var result quiz.GetQuizListResp
err = json.NewDecoder(resp.Body).Decode(&result)
assert.NoError(t, err)
items, ok := result["items"].([]interface{})
assert.True(t, ok)
items := result.Items
for _, item := range items {
quiz, ok := item.(map[string]interface{})
assert.True(t, ok)
name, ok := quiz["name"].(string)
assert.True(t, ok)
assert.Contains(t, name, "Filter Test")
assert.Contains(t, item.Name, "тест по фильтру")
}
})
@ -5403,12 +5397,11 @@ func TestGetQuizList_Filters(t *testing.T) {
defer resp.Body.Close()
assert.Equal(t, http.StatusOK, resp.StatusCode)
var result map[string]interface{}
var result quiz.GetQuizListResp
err = json.NewDecoder(resp.Body).Decode(&result)
assert.NoError(t, err)
items, ok := result["items"].([]interface{})
assert.True(t, ok)
items := result.Items
assert.GreaterOrEqual(t, len(items), 0)
})
}