Commit a306cb5b authored by Matija Čupić's avatar Matija Čupić

Reorganize Jobs Variables feature spec

parent 5de224e3
...@@ -344,86 +344,87 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do ...@@ -344,86 +344,87 @@ describe 'Jobs', :clean_gitlab_redis_shared_state do
end end
end end
describe 'Pipeline trigger variables when user is not a maintainer' do describe 'Variables' do
let(:trigger_request) { create(:ci_trigger_request) } let(:trigger_request) { create(:ci_trigger_request) }
let(:job) { create(:ci_build, pipeline: pipeline, trigger_request: trigger_request) } let(:job) { create(:ci_build, pipeline: pipeline, trigger_request: trigger_request) }
shared_examples 'expected variables behavior' do context 'when user is a maintainer' do
it 'renders a hidden value with no reveal values button', :js do shared_examples 'no reveal button variables behavior' do
expect(page).to have_content('Token') it 'renders a hidden value with no reveal values button', :js do
expect(page).to have_content('Variables') expect(page).to have_content('Token')
expect(page).not_to have_css('.js-reveal-variables') expect(page).to have_content('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 variables are stored in trigger_request' do expect(page).not_to have_css('.js-reveal-variables')
before do
trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } )
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 end
it_behaves_like 'expected variables behavior' context 'when variables are stored in trigger_request' do
end before do
trigger_request.update_attribute(:variables, { 'TRIGGER_KEY_1' => 'TRIGGER_VALUE_1' } )
context 'when variables are stored in pipeline_variables' do visit project_job_path(project, job)
before do end
create(:ci_pipeline_variable, pipeline: pipeline, key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1')
visit project_job_path(project, job) it_behaves_like 'no reveal button variables behavior'
end end
it_behaves_like 'expected variables behavior' context 'when variables are stored in pipeline_variables' do
end before do
end create(:ci_pipeline_variable, pipeline: pipeline, key: 'TRIGGER_KEY_1', value: 'TRIGGER_VALUE_1')
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
it 'reveals values on button click', :js do visit project_job_path(project, job)
click_button 'Reveal values' end
expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1') it_behaves_like 'no reveal button variables behavior'
expect(page).to have_selector('.js-build-value', text: 'TRIGGER_VALUE_1')
end end
end end
context 'when variables are stored in trigger_request' do context 'when user is a maintainer' do
before do before do
project.add_maintainer(user) 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) expect(page).to have_css('.js-reveal-variables')
end
it_behaves_like 'expected variables behavior when maintainer' expect(page).to have_selector('.js-build-variable', text: 'TRIGGER_KEY_1')
end expect(page).to have_selector('.js-build-value', text: '••••••')
end
context 'when variables are stored in pipeline_variables' do it 'reveals values on button click', :js do
before do click_button 'Reveal values'
project.add_maintainer(user)
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 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
end end
......
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