summaryrefslogtreecommitdiff
path: root/spec/requests/api
diff options
context:
space:
mode:
authorTomasz Maczukin <tomasz@maczukin.pl>2015-12-31 16:25:49 +0100
committerTomasz Maczukin <tomasz@maczukin.pl>2015-12-31 16:26:55 +0100
commita692ce1c079703c4f3947e1d0a29547189e94d0f (patch)
tree9a59e98e1143bf54fd877b3c7953dc5d40d898df /spec/requests/api
parentea4777ff501e370a39ae30e76a955136afe3c1fa (diff)
downloadgitlab-ce-a692ce1c079703c4f3947e1d0a29547189e94d0f.tar.gz
Add update feature for variables API
Diffstat (limited to 'spec/requests/api')
-rw-r--r--spec/requests/api/variables_spec.rb52
1 files changed, 44 insertions, 8 deletions
diff --git a/spec/requests/api/variables_spec.rb b/spec/requests/api/variables_spec.rb
index 8f66f5432b6..3f58277c4ae 100644
--- a/spec/requests/api/variables_spec.rb
+++ b/spec/requests/api/variables_spec.rb
@@ -40,25 +40,25 @@ describe API::API, api: true do
describe 'GET /projects/:id/variables/:variable_id' do
context 'authorized user with proper permissions' do
it 'should return project variable details when ID is used as :variable_id' do
- get api("/projects/#{project.id}/variables/1", user)
+ get api("/projects/#{project.id}/variables/#{variable.id}", user)
expect(response.status).to eq(200)
- expect(json_response['key']).to eq('TEST_VARIABLE_1')
- expect(json_response['value']).to eq('VALUE_1')
+ expect(json_response['key']).to eq(variable.key)
+ expect(json_response['value']).to eq(variable.value)
end
it 'should return project variable details when `key` is used as :variable_id' do
- get api("/projects/#{project.id}/variables/TEST_VARIABLE_1", user)
+ get api("/projects/#{project.id}/variables/#{variable.key}", user)
expect(response.status).to eq(200)
- expect(json_response['id']).to eq(1)
- expect(json_response['value']).to eq('VALUE_1')
+ expect(json_response['id']).to eq(variable.id)
+ expect(json_response['value']).to eq(variable.value)
end
end
context 'authorized user with invalid permissions' do
it 'should not return project variable details' do
- get api("/projects/#{project.id}/variables/1", user2)
+ get api("/projects/#{project.id}/variables/#{variable.id}", user2)
expect(response.status).to eq(403)
end
@@ -66,7 +66,43 @@ describe API::API, api: true do
context 'unauthorized user' do
it 'should not return project variable details' do
- get api("/projects/#{project.id}/variables/1")
+ get api("/projects/#{project.id}/variables/#{variable.id}")
+
+ expect(response.status).to eq(401)
+ end
+ end
+ end
+
+ describe 'PUT /projects/:id/variables/:variable_id' do
+ context 'authorized user with proper permissions' do
+ it 'should update variable data' do
+ initial_variable = project.variables.first
+ key_before = initial_variable.key
+ value_before = initial_variable.value
+
+ put api("/projects/#{project.id}/variables/#{variable.id}", user), key: 'TEST_VARIABLE_1_UP', value: 'VALUE_1_UP'
+
+ updated_variable = project.variables.first
+
+ expect(response.status).to eq(200)
+ expect(key_before).to eq(variable.key)
+ expect(value_before).to eq(variable.value)
+ expect(updated_variable.key).to eq('TEST_VARIABLE_1_UP')
+ expect(updated_variable.value).to eq('VALUE_1_UP')
+ end
+ end
+
+ context 'authorized user with invalid permissions' do
+ it 'should not update variable' do
+ put api("/projects/#{project.id}/variables/#{variable.id}", user2)
+
+ expect(response.status).to eq(403)
+ end
+ end
+
+ context 'unauthorized user' do
+ it 'should not return project variable details' do
+ put api("/projects/#{project.id}/variables/#{variable.id}")
expect(response.status).to eq(401)
end