diff options
-rw-r--r-- | app/views/projects/jobs/_empty_state.html.haml | 5 | ||||
-rw-r--r-- | app/views/projects/jobs/show.html.haml | 10 | ||||
-rw-r--r-- | spec/features/projects/jobs_spec.rb | 20 |
3 files changed, 27 insertions, 8 deletions
diff --git a/app/views/projects/jobs/_empty_state.html.haml b/app/views/projects/jobs/_empty_state.html.haml index 311934d9c33..c66313bdbf3 100644 --- a/app/views/projects/jobs/_empty_state.html.haml +++ b/app/views/projects/jobs/_empty_state.html.haml @@ -1,7 +1,7 @@ - illustration = local_assigns.fetch(:illustration) - illustration_size = local_assigns.fetch(:illustration_size) - title = local_assigns.fetch(:title) -- content = local_assigns.fetch(:content, nil) +- content = local_assigns.fetch(:content) - action = local_assigns.fetch(:action, nil) .row.empty-state @@ -11,8 +11,7 @@ .col-xs-12 .text-content %h4.text-center= title - - if content - %p= content + %p= content - if action .text-center = action diff --git a/app/views/projects/jobs/show.html.haml b/app/views/projects/jobs/show.html.haml index 1e6d6f67e66..eb0773f2d4e 100644 --- a/app/views/projects/jobs/show.html.haml +++ b/app/views/projects/jobs/show.html.haml @@ -95,12 +95,18 @@ title: _('This job requires a manual action'), content: _('This job depends on a user to trigger its process. Often they are used to deploy code to production environments'), action: ( link_to _('Trigger this manual action'), play_project_job_path(@project, @build), method: :post, class: 'btn btn-primary', title: _('Trigger this manual action') ) + - elsif @build.created? + = render 'empty_state', + illustration: 'illustrations/job_not_triggered.svg', + illustration_size: 'svg-306', + title: _('This job has not been triggered yet'), + content: _('This job depends on upstream jobs that need to succeed in order for this job to be triggered') - else = render 'empty_state', illustration: 'illustrations/job_not_triggered.svg', illustration_size: 'svg-306', - title: _('This job has not been triggered yet') - + title: _('This job has not started yet'), + content: _('This job is in pending state and is waiting to be picked by a runner') = render "sidebar" .js-build-options{ data: javascript_build_options } diff --git a/spec/features/projects/jobs_spec.rb b/spec/features/projects/jobs_spec.rb index a5cd858b11a..e661db1809a 100644 --- a/spec/features/projects/jobs_spec.rb +++ b/spec/features/projects/jobs_spec.rb @@ -384,12 +384,12 @@ feature 'Jobs' do expect(page).to have_link('Trigger this manual action') end - it 'plays manual action', :js do + it 'plays manual action and shows pending status', :js do click_link 'Trigger this manual action' wait_for_requests - expect(page).to have_content('This job has not been triggered') - expect(page).to have_content('This job is stuck, because the project doesn\'t have any runners online assigned to it.') + expect(page).to have_content('This job has not started yet') + expect(page).to have_content('This job is in pending state and is waiting to be picked by a runner') expect(page).to have_content('pending') end end @@ -403,6 +403,20 @@ feature 'Jobs' do it 'shows empty state' do expect(page).to have_content('This job has not been triggered yet') + expect(page).to have_content('This job depends on upstream jobs that need to succeed in order for this job to be triggered') + end + end + + context 'Pending job' do + let(:job) { create(:ci_build, :pending, pipeline: pipeline) } + + before do + visit project_job_path(project, job) + end + + it 'shows pending empty state' do + expect(page).to have_content('This job has not started yet') + expect(page).to have_content('This job is in pending state and is waiting to be picked by a runner') end end end |