Commit 01960fce authored by Lin Jen-Shin's avatar Lin Jen-Shin

Fix optional args for POST :id/variables

Always use declared_params(include_missing: false)
so that we don't give nils for optional arguments
parent ad3843ae
...@@ -45,7 +45,7 @@ module API ...@@ -45,7 +45,7 @@ module API
optional :protected, type: String, desc: 'Whether the variable is protected' optional :protected, type: String, desc: 'Whether the variable is protected'
end end
post ':id/variables' do post ':id/variables' do
variable = user_project.variables.create(declared(params, include_parent_namespaces: false).to_h) variable = user_project.variables.create(declared_params(include_missing: false))
if variable.valid? if variable.valid?
present variable, with: Entities::Variable present variable, with: Entities::Variable
......
...@@ -82,6 +82,17 @@ describe API::Variables do ...@@ -82,6 +82,17 @@ describe API::Variables do
expect(json_response['protected']).to be_truthy expect(json_response['protected']).to be_truthy
end end
it 'creates variable with optional attributes' do
expect do
post api("/projects/#{project.id}/variables", user), key: 'TEST_VARIABLE_2', value: 'VALUE_2'
end.to change{project.variables.count}.by(1)
expect(response).to have_http_status(201)
expect(json_response['key']).to eq('TEST_VARIABLE_2')
expect(json_response['value']).to eq('VALUE_2')
expect(json_response['protected']).to be_falsey
end
it 'does not allow to duplicate variable key' do it 'does not allow to duplicate variable key' do
expect do expect do
post api("/projects/#{project.id}/variables", user), key: variable.key, value: 'VALUE_2' post api("/projects/#{project.id}/variables", user), key: variable.key, value: 'VALUE_2'
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment