Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2016-11-18 00:50:02 +0300
committerSean McGivern <sean@mcgivern.me.uk>2016-11-18 00:50:02 +0300
commit8823107e57a4fe6c22b85537bd0fe498af6cbbf8 (patch)
treeca61c97bb34fed519f3cd7c8057b0f316cbd33f2 /spec/requests
parent0e1ff0ebd44f5cf0154d9ef5b5b818fb47a82123 (diff)
parent79122896318ae50c835418888f7f781fa2e463f4 (diff)
Merge branch 'sort-api-groups' into 'master'
Allow sorting groups in API Relates to #20013. See merge request !7529
Diffstat (limited to 'spec/requests')
-rw-r--r--spec/requests/api/groups_spec.rb37
1 files changed, 36 insertions, 1 deletions
diff --git a/spec/requests/api/groups_spec.rb b/spec/requests/api/groups_spec.rb
index d79b204a24e..d9fdafde05e 100644
--- a/spec/requests/api/groups_spec.rb
+++ b/spec/requests/api/groups_spec.rb
@@ -57,13 +57,48 @@ describe API::API, api: true do
end
context "when using all_available in request" do
+ let(:response_groups) { json_response.map { |group| group['name'] } }
+
it "returns all groups you have access to" do
public_group = create :group, :public
get api("/groups", user1), all_available: true
expect(response).to have_http_status(200)
expect(json_response).to be_an Array
- expect(json_response.first['name']).to eq(public_group.name)
+ expect(response_groups).to contain_exactly(public_group.name, group1.name)
+ end
+ end
+
+ context "when using sorting" do
+ let(:group3) { create(:group, name: "a#{group1.name}", path: "z#{group1.path}") }
+ let(:response_groups) { json_response.map { |group| group['name'] } }
+
+ before do
+ group3.add_owner(user1)
+ end
+
+ it "sorts by name ascending by default" do
+ get api("/groups", user1)
+
+ expect(response).to have_http_status(200)
+ expect(json_response).to be_an Array
+ expect(response_groups).to eq([group3.name, group1.name])
+ end
+
+ it "sorts in descending order when passed" do
+ get api("/groups", user1), sort: "desc"
+
+ expect(response).to have_http_status(200)
+ expect(json_response).to be_an Array
+ expect(response_groups).to eq([group1.name, group3.name])
+ end
+
+ it "sorts by the order_by param" do
+ get api("/groups", user1), order_by: "path"
+
+ expect(response).to have_http_status(200)
+ expect(json_response).to be_an Array
+ expect(response_groups).to eq([group1.name, group3.name])
end
end
end