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) 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) { func TestGetQuizList_Success(t *testing.T) {
quizNames := []string{"Квиз по географии", "Квиз по истории", "Квиз по математике"} quizNames := []string{"Квиз по географии", "Квиз по истории", "Квиз по математике"}
var quizIDs []uint64 var quizIDs []uint64
@ -5091,7 +5091,7 @@ func TestGetQuizList_Success(t *testing.T) {
t.Run("BasicList", func(t *testing.T) { t.Run("BasicList", func(t *testing.T) {
resp, err := getQuizListRequest(validToken, map[string]interface{}{ resp, err := getQuizListRequest(validToken, map[string]interface{}{
"limit": 5, "limit": 5,
"page": 1, "page": 0,
"status": "start", "status": "start",
}) })
assert.NoError(t, err) assert.NoError(t, err)
@ -5120,7 +5120,7 @@ func TestGetQuizList_Success(t *testing.T) {
resp, err := getQuizListRequest(validToken, map[string]interface{}{ resp, err := getQuizListRequest(validToken, map[string]interface{}{
"limit": 10, "limit": 10,
"page": 1, "page": 1,
"search": "география", "search": "географии",
"status": "start", "status": "start",
}) })
assert.NoError(t, err) assert.NoError(t, err)
@ -5140,7 +5140,7 @@ func TestGetQuizList_Success(t *testing.T) {
assert.True(t, ok) assert.True(t, ok)
name, ok := quiz["name"].(string) name, ok := quiz["name"].(string)
assert.True(t, ok) 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) { func TestGetQuizList_Filters(t *testing.T) {
statuses := []string{"draft", "start", "stop", "template"} statuses := []string{"draft", "start", "stop", "template"}
for _, status := range statuses { for _, status := range statuses {
resp, err := createQuizRequest(validToken, map[string]interface{}{ resp, err := createQuizRequest(validToken, map[string]interface{}{
"name": fmt.Sprintf("Filter Test Quiz %s", status), "name": fmt.Sprintf("тест по фильтру %s", status),
"status": status, "status": status,
}) })
assert.NoError(t, err) assert.NoError(t, err)
@ -5356,40 +5356,34 @@ func TestGetQuizList_Filters(t *testing.T) {
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.GetQuizListResp
err = json.NewDecoder(resp.Body).Decode(&result) err = json.NewDecoder(resp.Body).Decode(&result)
assert.NoError(t, err) assert.NoError(t, err)
items, ok := result["items"].([]interface{}) items := result.Items
assert.True(t, ok)
for _, item := range items { for _, item := range items {
quiz, ok := item.(map[string]interface{}) assert.Equal(t, "draft", item.Status)
assert.True(t, ok)
assert.Equal(t, "draft", quiz["status"])
} }
}) })
t.Run("SearchFilter", func(t *testing.T) { t.Run("SearchFilter", func(t *testing.T) {
resp, err := getQuizListRequest(validToken, map[string]interface{}{ resp, err := getQuizListRequest(validToken, map[string]interface{}{
"search": "Filter Test", "search": "тест",
"limit": 5,
"page": 0,
}) })
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.GetQuizListResp
err = json.NewDecoder(resp.Body).Decode(&result) err = json.NewDecoder(resp.Body).Decode(&result)
assert.NoError(t, err) assert.NoError(t, err)
items, ok := result["items"].([]interface{}) items := result.Items
assert.True(t, ok)
for _, item := range items { for _, item := range items {
quiz, ok := item.(map[string]interface{}) assert.Contains(t, item.Name, "тест по фильтру")
assert.True(t, ok)
name, ok := quiz["name"].(string)
assert.True(t, ok)
assert.Contains(t, name, "Filter Test")
} }
}) })
@ -5403,12 +5397,11 @@ func TestGetQuizList_Filters(t *testing.T) {
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.GetQuizListResp
err = json.NewDecoder(resp.Body).Decode(&result) err = json.NewDecoder(resp.Body).Decode(&result)
assert.NoError(t, err) assert.NoError(t, err)
items, ok := result["items"].([]interface{}) items := result.Items
assert.True(t, ok)
assert.GreaterOrEqual(t, len(items), 0) assert.GreaterOrEqual(t, len(items), 0)
}) })
} }