summaryrefslogtreecommitdiff
path: root/spec/requests
diff options
context:
space:
mode:
authorTomasz Maczukin <tomasz@maczukin.pl>2016-01-29 16:44:29 +0100
committerTomasz Maczukin <tomasz@maczukin.pl>2016-02-19 13:18:46 +0100
commit53f775ae6d6d0cd33a6a1421e736670b45e59309 (patch)
treec3d68f270ca486525f926a16300b2c258f433b3e /spec/requests
parent8c37f0ff3093995566f7f24788f8362f481b56b6 (diff)
downloadgitlab-ce-53f775ae6d6d0cd33a6a1421e736670b45e59309.tar.gz
Fix runners filtering in API
Diffstat (limited to 'spec/requests')
-rw-r--r--spec/requests/api/runners_spec.rb41
1 files changed, 24 insertions, 17 deletions
diff --git a/spec/requests/api/runners_spec.rb b/spec/requests/api/runners_spec.rb
index 9ffa59dac07..d600b2312c5 100644
--- a/spec/requests/api/runners_spec.rb
+++ b/spec/requests/api/runners_spec.rb
@@ -22,35 +22,42 @@ describe API::API, api: true do
let!(:two_projects_runner_project2) { create(:ci_runner_project, runner: two_projects_runner, project: project2) }
describe 'GET /runners' do
- context 'authorized user with admin privileges' do
- it 'should return all runners' do
- get api('/runners', admin)
- shared = false || json_response.map{ |r| r['is_shared'] }.inject{ |sum, shr| sum || shr}
+ context 'authorized user' do
+ context 'authorized user with admin privileges' do
+ it 'should return all runners' do
+ get api('/runners', admin)
+ shared = false || json_response.map{ |r| r['is_shared'] }.inject{ |sum, shr| sum || shr}
- expect(response.status).to eq(200)
- expect(json_response).to be_an Array
- expect(shared).to be_truthy
+ expect(response.status).to eq(200)
+ expect(json_response).to be_an Array
+ expect(shared).to be_truthy
+ end
end
- it 'should filter runners by scope' do
- get api('/runners?scope=specific', admin)
- shared = false || json_response.map{ |r| r['is_shared'] }.inject{ |sum, shr| sum || shr}
+ context 'authorized user without admin privileges' do
+ it 'should return user available runners' do
+ get api('/runners', user)
+ shared = false || json_response.map{ |r| r['is_shared'] }.inject{ |sum, shr| sum || shr}
- expect(response.status).to eq(200)
- expect(json_response).to be_an Array
- expect(shared).to be_falsey
+ expect(response.status).to eq(200)
+ expect(json_response).to be_an Array
+ expect(shared).to be_falsey
+ end
end
- end
- context 'authorized user without admin privileges' do
- it 'should return user available runners' do
- get api('/runners', user)
+ it 'should filter runners by scope' do
+ get api('/runners?scope=specific', user)
shared = false || json_response.map{ |r| r['is_shared'] }.inject{ |sum, shr| sum || shr}
expect(response.status).to eq(200)
expect(json_response).to be_an Array
expect(shared).to be_falsey
end
+
+ it 'should avoid filtering if scope is invalid' do
+ get api('/runners?scope=unknown', user)
+ expect(response.status).to eq(400)
+ end
end
context 'unauthorized user' do