|
|
@ -21,20 +21,42 @@ func TestTopicSearch(t *testing.T) { |
|
|
|
TopicNames []*api.TopicResponse `json:"topics"` |
|
|
|
TopicNames []*api.TopicResponse `json:"topics"` |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// search all topics
|
|
|
|
|
|
|
|
res := MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|
|
|
|
|
DecodeJSON(t, res, &topics) |
|
|
|
|
|
|
|
assert.Len(t, topics.TopicNames, 6) |
|
|
|
|
|
|
|
assert.EqualValues(t, "6", res.Header().Get("x-total-count")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// pagination search topics
|
|
|
|
|
|
|
|
topics.TopicNames = nil |
|
|
|
query := url.Values{"page": []string{"1"}, "limit": []string{"4"}} |
|
|
|
query := url.Values{"page": []string{"1"}, "limit": []string{"4"}} |
|
|
|
|
|
|
|
|
|
|
|
searchURL.RawQuery = query.Encode() |
|
|
|
searchURL.RawQuery = query.Encode() |
|
|
|
res := MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|
DecodeJSON(t, res, &topics) |
|
|
|
DecodeJSON(t, res, &topics) |
|
|
|
assert.Len(t, topics.TopicNames, 4) |
|
|
|
assert.Len(t, topics.TopicNames, 4) |
|
|
|
assert.EqualValues(t, "6", res.Header().Get("x-total-count")) |
|
|
|
assert.EqualValues(t, "6", res.Header().Get("x-total-count")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// second page
|
|
|
|
|
|
|
|
topics.TopicNames = nil |
|
|
|
|
|
|
|
query = url.Values{"page": []string{"2"}, "limit": []string{"4"}} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
searchURL.RawQuery = query.Encode() |
|
|
|
|
|
|
|
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|
|
|
|
|
DecodeJSON(t, res, &topics) |
|
|
|
|
|
|
|
assert.Len(t, topics.TopicNames, 2) |
|
|
|
|
|
|
|
assert.EqualValues(t, "6", res.Header().Get("x-total-count")) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// add keyword search
|
|
|
|
|
|
|
|
topics.TopicNames = nil |
|
|
|
|
|
|
|
query = url.Values{"page": []string{"1"}, "limit": []string{"4"}} |
|
|
|
query.Add("q", "topic") |
|
|
|
query.Add("q", "topic") |
|
|
|
searchURL.RawQuery = query.Encode() |
|
|
|
searchURL.RawQuery = query.Encode() |
|
|
|
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|
DecodeJSON(t, res, &topics) |
|
|
|
DecodeJSON(t, res, &topics) |
|
|
|
assert.Len(t, topics.TopicNames, 2) |
|
|
|
assert.Len(t, topics.TopicNames, 2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
topics.TopicNames = nil |
|
|
|
query.Set("q", "database") |
|
|
|
query.Set("q", "database") |
|
|
|
searchURL.RawQuery = query.Encode() |
|
|
|
searchURL.RawQuery = query.Encode() |
|
|
|
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|
res = MakeRequest(t, NewRequest(t, "GET", searchURL.String()), http.StatusOK) |
|
|
|