summaryrefslogtreecommitdiff
path: root/spec/features/projects/jobs_spec.rb
diff options
context:
space:
mode:
authorMatija Čupić <matteeyah@gmail.com>2018-12-07 17:30:52 +0100
committerMatija Čupić <matteeyah@gmail.com>2018-12-07 17:30:52 +0100
commita306cb5b3121ef3de199a7991b157b5795a9eb19 (patch)
tree318008432eca09660da198074bb882f2de69ea9a /spec/features/projects/jobs_spec.rb
parent5de224e3dc11ab9dafb291417797f1404f6f4be9 (diff)
downloadgitlab-ce-a306cb5b3121ef3de199a7991b157b5795a9eb19.tar.gz
Reorganize Jobs Variables feature spec
Diffstat (limited to 'spec/features/projects/jobs_spec.rb')
-rw-r--r--spec/features/projects/jobs_spec.rb109
1 files changed, 55 insertions, 54 deletions
diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb
index d4d5c7282fe..4f93e512f1d 100644
--- a/spec/features/projects/jobs_spec.rb
+++ b/spec/features/projects/jobs_spec.rb
@@ -344,86 +344,87 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do
end
end
- describe 'Pipeline trigger variables when user is not a maintainer' do
+ describe 'Variables' do
let(:trigger_request) { create(:ci_trigger_request) }
-
let(:job) { create(:ci_build, pipeline: pipeline, trigger_request: trigger_request) }
- shared_examples 'expected variables behavior' do
- it 'renders a hidden value with no reveal values button', :js do
- expect(page).to have_content('Token')
- expect(page).to have_content('Variables')
- expect(page).not_to have_css('.js-reveal-variables')
- expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1')
- expect(page).to have_selector('.js-build-value', text: '••••••')
- end
- end
+ context 'when user is a maintainer' do
+ shared_examples 'no reveal button variables behavior' do
+ it 'renders a hidden value with no reveal values button', :js do
+ expect(page).to have_content('Token')
+ expect(page).to have_content('Variables')
- context 'when variables are stored in trigger_request' do
- before do
- trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } )
+ expect(page).not_to have_css('.js-reveal-variables')
- visit project_job_path(project, job)
+ expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1')
+ expect(page).to have_selector('.js-build-value', text: '••••••')
+ end
end
- it_behaves_like 'expected variables behavior'
- end
+ context 'when variables are stored in trigger_request' do
+ before do
+ trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } )
- context 'when variables are stored in pipeline_variables' do
- before do
- create(:ci_pipeline_variable, pipeline: pipeline, key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1')
+ visit project_job_path(project, job)
+ end
- visit project_job_path(project, job)
+ it_behaves_like 'no reveal button variables behavior'
end
- it_behaves_like 'expected variables behavior'
- end
- end
-
- describe 'Pipeline trigger variables when user is a maintainer' do
- let(:trigger_request) { create(:ci_trigger_request) }
-
- let(:job) { create(:ci_build, pipeline: pipeline, trigger_request: trigger_request) }
-
- shared_examples 'expected variables behavior when maintainer' do
- it 'renders a hidden value with a reveal values button', :js do
- expect(page).to have_content('Token')
- expect(page).to have_content('Variables')
- expect(page).to have_css('.js-reveal-variables')
- expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1')
- expect(page).to have_selector('.js-build-value', text: '••••••')
- end
+ context 'when variables are stored in pipeline_variables' do
+ before do
+ create(:ci_pipeline_variable, pipeline: pipeline, key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1')
- it 'reveals values on button click', :js do
- click_button 'Reveal values'
+ visit project_job_path(project, job)
+ end
- expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1')
- expect(page).to have_selector('.js-build-value', text: 'TRIGGER_VALUE_1')
+ it_behaves_like 'no reveal button variables behavior'
end
end
- context 'when variables are stored in trigger_request' do
+ context 'when user is a maintainer' do
before do
project.add_maintainer(user)
+ end
- trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } )
+ shared_examples 'reveal button variables behavior' do
+ it 'renders a hidden value with a reveal values button', :js do
+ expect(page).to have_content('Token')
+ expect(page).to have_content('Variables')
- visit project_job_path(project, job)
- end
+ expect(page).to have_css('.js-reveal-variables')
- it_behaves_like 'expected variables behavior when maintainer'
- end
+ expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1')
+ expect(page).to have_selector('.js-build-value', text: '••••••')
+ end
- context 'when variables are stored in pipeline_variables' do
- before do
- project.add_maintainer(user)
+ it 'reveals values on button click', :js do
+ click_button 'Reveal values'
+
+ expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1')
+ expect(page).to have_selector('.js-build-value', text: 'TRIGGER_VALUE_1')
+ end
+ end
- create(:ci_pipeline_variable, pipeline: pipeline, key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1')
+ context 'when variables are stored in trigger_request' do
+ before do
+ trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } )
- visit project_job_path(project, job)
+ visit project_job_path(project, job)
+ end
+
+ it_behaves_like 'reveal button variables behavior'
end
- it_behaves_like 'expected variables behavior when maintainer'
+ context 'when variables are stored in pipeline_variables' do
+ before do
+ create(:ci_pipeline_variable, pipeline: pipeline, key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1')
+
+ visit project_job_path(project, job)
+ end
+
+ it_behaves_like 'reveal button variables behavior'
+ end
end
end