diff options
author | Tim Zallmann <tzallmann@gitlab.com> | 2018-11-05 11:45:36 +0000 |
---|---|---|
committer | Tim Zallmann <tzallmann@gitlab.com> | 2018-11-05 11:45:36 +0000 |
commit | 425ddcc5a8f65b44546daa8c1885e4e4f45e5f32 (patch) | |
tree | 686da2eb8ee8755f7e1bcd7a91c61559638fe547 /spec/features/projects | |
parent | 2ae6c47ddd27d9f76bc2e4326e91fc8d272896c1 (diff) | |
parent | 13c091c443502a6824b78c4e93637b3fc794a47c (diff) | |
download | gitlab-ce-425ddcc5a8f65b44546daa8c1885e4e4f45e5f32.tar.gz |
Merge branch 'scheduled-manual-jobs-environment-play-buttons' into 'master'
Add the Play button for delayed jobs in environment page
Closes #52129
See merge request gitlab-org/gitlab-ce!22106
Diffstat (limited to 'spec/features/projects')
-rw-r--r-- | spec/features/projects/environments/environments_spec.rb | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/spec/features/projects/environments/environments_spec.rb b/spec/features/projects/environments/environments_spec.rb index 917ba495f01..22d0187ac81 100644 --- a/spec/features/projects/environments/environments_spec.rb +++ b/spec/features/projects/environments/environments_spec.rb @@ -162,7 +162,7 @@ describe 'Environments page', :js do end it 'shows a play button' do - find('.js-dropdown-play-icon-container').click + find('.js-environment-actions-dropdown').click expect(page).to have_content(action.name.humanize) end @@ -170,7 +170,7 @@ describe 'Environments page', :js do it 'allows to play a manual action', :js do expect(action).to be_manual - find('.js-dropdown-play-icon-container').click + find('.js-environment-actions-dropdown').click expect(page).to have_content(action.name.humanize) expect { find('.js-manual-action-link').click } @@ -260,6 +260,69 @@ describe 'Environments page', :js do end end end + + context 'when there is a delayed job' do + let!(:pipeline) { create(:ci_pipeline, project: project) } + let!(:build) { create(:ci_build, pipeline: pipeline) } + + let!(:delayed_job) do + create(:ci_build, :scheduled, + pipeline: pipeline, + name: 'delayed job', + stage: 'test', + commands: 'test') + end + + let!(:deployment) do + create(:deployment, + environment: environment, + deployable: build, + sha: project.commit.id) + end + + before do + visit_environments(project) + end + + it 'has a dropdown for actionable jobs' do + expect(page).to have_selector('.dropdown-new.btn.btn-default .ic-play') + end + + it "has link to the delayed job's action" do + find('.js-environment-actions-dropdown').click + + expect(page).to have_button('Delayed job') + expect(page).to have_content(/\d{2}:\d{2}:\d{2}/) + end + + context 'when delayed job is expired already' do + let!(:delayed_job) do + create(:ci_build, :expired_scheduled, + pipeline: pipeline, + name: 'delayed job', + stage: 'test', + commands: 'test') + end + + it "shows 00:00:00 as the remaining time" do + find('.js-environment-actions-dropdown').click + + expect(page).to have_content("00:00:00") + end + end + + context 'when user played a delayed job immediately' do + before do + find('.js-environment-actions-dropdown').click + page.accept_confirm { click_button('Delayed job') } + wait_for_requests + end + + it 'enqueues the delayed job', :js do + expect(delayed_job.reload).to be_pending + end + end + end end end |