diff options
author | Matija Čupić <matteeyah@gmail.com> | 2018-12-07 17:30:52 +0100 |
---|---|---|
committer | Matija Čupić <matteeyah@gmail.com> | 2018-12-07 17:30:52 +0100 |
commit | a306cb5b3121ef3de199a7991b157b5795a9eb19 (patch) | |
tree | 318008432eca09660da198074bb882f2de69ea9a /spec/features/projects/jobs_spec.rb | |
parent | 5de224e3dc11ab9dafb291417797f1404f6f4be9 (diff) | |
download | gitlab-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.rb | 109 |
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 |