diff options
author | Jacopo <beschi.jacopo@gmail.com> | 2017-11-18 15:06:55 +0100 |
---|---|---|
committer | Jacopo <beschi.jacopo@gmail.com> | 2017-12-13 18:02:20 +0100 |
commit | 55f322085d0507640366b7a774fe7819771ff54b (patch) | |
tree | 30fcb5e3f952fa007445342cbd67802a7f0958e3 /spec/requests | |
parent | 6930fa3102f0ba197e969f9996e86bf11346470c (diff) | |
download | gitlab-ce-55f322085d0507640366b7a774fe7819771ff54b.tar.gz |
Adds ordering to projects contributors in API
Allows ordering in GET api/v4/projects/:project_id/repository/contributors
through `order_by` and `sort` params.
The available `order_by` options are: name|email|commits.
The available `sort` options are: asc|desc.
Diffstat (limited to 'spec/requests')
-rw-r--r-- | spec/requests/api/repositories_spec.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/requests/api/repositories_spec.rb b/spec/requests/api/repositories_spec.rb index 9f2ff3b5af6..741800ff61d 100644 --- a/spec/requests/api/repositories_spec.rb +++ b/spec/requests/api/repositories_spec.rb @@ -378,6 +378,28 @@ describe API::Repositories do expect(first_contributor['additions']).to eq(0) expect(first_contributor['deletions']).to eq(0) end + + context 'using sorting' do + context 'by commits desc' do + it 'returns the repository contribuors sorted by commits desc' do + get api(route, current_user), { order_by: 'commits', sort: 'desc' } + + expect(response).to have_gitlab_http_status(200) + expect(response).to match_response_schema('contributors') + expect(json_response.first['commits']).to be > json_response.last['commits'] + end + end + + context 'by name desc' do + it 'returns the repository contribuors sorted by name asc case insensitive' do + get api(route, current_user), { order_by: 'name', sort: 'asc' } + + expect(response).to have_gitlab_http_status(200) + expect(response).to match_response_schema('contributors') + expect(json_response.first['name'].downcase).to be < json_response.last['name'].downcase + end + end + end end context 'when unauthenticated', 'and project is public' do |