summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/views/projects/variables/_form.html.haml2
-rw-r--r--changelogs/unreleased/lnovy-gitlab-ce-empty-variables.yml4
-rw-r--r--spec/features/variables_spec.rb44
3 files changed, 42 insertions, 8 deletions
diff --git a/app/views/projects/variables/_form.html.haml b/app/views/projects/variables/_form.html.haml
index a5bae83e0ce..1ae86d258af 100644
--- a/app/views/projects/variables/_form.html.haml
+++ b/app/views/projects/variables/_form.html.haml
@@ -6,5 +6,5 @@
= f.text_field :key, class: "form-control", placeholder: "PROJECT_VARIABLE", required: true
.form-group
= f.label :value, "Value", class: "label-light"
- = f.text_area :value, class: "form-control", placeholder: "PROJECT_VARIABLE", required: true
+ = f.text_area :value, class: "form-control", placeholder: "PROJECT_VARIABLE"
= f.submit btn_text, class: "btn btn-save"
diff --git a/changelogs/unreleased/lnovy-gitlab-ce-empty-variables.yml b/changelogs/unreleased/lnovy-gitlab-ce-empty-variables.yml
new file mode 100644
index 00000000000..bd5db5ac7af
--- /dev/null
+++ b/changelogs/unreleased/lnovy-gitlab-ce-empty-variables.yml
@@ -0,0 +1,4 @@
+---
+title: 'UI: Allow a project variable to be set to an empty value'
+merge_request: 6044
+author: Lukáš Nový
diff --git a/spec/features/variables_spec.rb b/spec/features/variables_spec.rb
index 9a4bc027004..a07eba2f01e 100644
--- a/spec/features/variables_spec.rb
+++ b/spec/features/variables_spec.rb
@@ -3,7 +3,7 @@ require 'spec_helper'
describe 'Project variables', js: true do
let(:user) { create(:user) }
let(:project) { create(:project) }
- let(:variable) { create(:ci_variable, key: 'test') }
+ let(:variable) { create(:ci_variable, key: 'test_key', value: 'test value') }
before do
login_as(user)
@@ -16,16 +16,28 @@ describe 'Project variables', js: true do
it 'shows list of variables' do
page.within('.variables-table') do
expect(page).to have_content(variable.key)
+ expect(page).to have_content(variable.value)
end
end
it 'adds new variable' do
- fill_in('variable_key', with: 'key')
- fill_in('variable_value', with: 'key value')
+ fill_in('variable_key', with: 'new_key')
+ fill_in('variable_value', with: 'new value')
click_button('Add new variable')
page.within('.variables-table') do
- expect(page).to have_content('key')
+ expect(page).to have_content('new_key')
+ expect(page).to have_content('new value')
+ end
+ end
+
+ it 'adds empty variable' do
+ fill_in('variable_key', with: 'new_key')
+ fill_in('variable_value', with: '')
+ click_button('Add new variable')
+
+ page.within('.variables-table') do
+ expect(page).to have_content('new_key')
end
end
@@ -68,12 +80,30 @@ describe 'Project variables', js: true do
end
expect(page).to have_content('Update variable')
- fill_in('variable_key', with: 'key')
- fill_in('variable_value', with: 'key value')
+ fill_in('variable_key', with: 'new_key')
+ fill_in('variable_value', with: 'new value')
click_button('Save variable')
page.within('.variables-table') do
- expect(page).to have_content('key')
+ expect(page).not_to have_content(variable.key)
+ expect(page).not_to have_content(variable.value)
+ expect(page).to have_content('new_key')
+ expect(page).to have_content('new value')
+ end
+ end
+
+ it 'edits variable with empty value' do
+ page.within('.variables-table') do
+ find('.btn-variable-edit').click
+ end
+
+ expect(page).to have_content('Update variable')
+ fill_in('variable_value', with: '')
+ click_button('Save variable')
+
+ page.within('.variables-table') do
+ expect(page).to have_content(variable.key)
+ expect(page).not_to have_content(variable.value)
end
end
end