Commit 5fb30b28 authored by Kushal Pandya's avatar Kushal Pandya

Merge branch...

Merge branch '198621-actionview-template-error-missing-partial-notify-links-projects-generic_commit_statuses' into 'master'

Fix Pipeline failed notification email not being delivered if the failed job is a bridge job

Closes #198621

See merge request gitlab-org/gitlab!23668
parents 304dc086 cb0ec316
---
title: Fix Pipeline failed notification email not being delivered if the failed job
is a bridge job
merge_request: 23668
author:
type: fixed
...@@ -15,7 +15,7 @@ describe 'notify/pipeline_failed_email.html.haml' do ...@@ -15,7 +15,7 @@ describe 'notify/pipeline_failed_email.html.haml' do
user: user, user: user,
ref: project.default_branch, ref: project.default_branch,
sha: project.commit.sha, sha: project.commit.sha,
status: :success) status: :failed)
end end
before do before do
...@@ -24,6 +24,7 @@ describe 'notify/pipeline_failed_email.html.haml' do ...@@ -24,6 +24,7 @@ describe 'notify/pipeline_failed_email.html.haml' do
assign(:merge_request, merge_request) assign(:merge_request, merge_request)
end end
shared_examples_for 'renders the pipeline failed email correctly' do
context 'pipeline with user' do context 'pipeline with user' do
it 'renders the email correctly' do it 'renders the email correctly' do
render render
...@@ -34,6 +35,7 @@ describe 'notify/pipeline_failed_email.html.haml' do ...@@ -34,6 +35,7 @@ describe 'notify/pipeline_failed_email.html.haml' do
expect(rendered).to have_content pipeline.commit.author_name expect(rendered).to have_content pipeline.commit.author_name
expect(rendered).to have_content "##{pipeline.id}" expect(rendered).to have_content "##{pipeline.id}"
expect(rendered).to have_content pipeline.user.name expect(rendered).to have_content pipeline.user.name
expect(rendered).to have_content build.name
end end
it_behaves_like 'correct pipeline information for pipelines for merge requests' it_behaves_like 'correct pipeline information for pipelines for merge requests'
...@@ -53,6 +55,20 @@ describe 'notify/pipeline_failed_email.html.haml' do ...@@ -53,6 +55,20 @@ describe 'notify/pipeline_failed_email.html.haml' do
expect(rendered).to have_content pipeline.commit.author_name expect(rendered).to have_content pipeline.commit.author_name
expect(rendered).to have_content "##{pipeline.id}" expect(rendered).to have_content "##{pipeline.id}"
expect(rendered).to have_content "by API" expect(rendered).to have_content "by API"
expect(rendered).to have_content build.name
end end
end end
end
context 'when the pipeline contains a failed job' do
let!(:build) { create(:ci_build, :failed, pipeline: pipeline, project: pipeline.project) }
it_behaves_like 'renders the pipeline failed email correctly'
end
context 'when the latest failed job is a bridge job' do
let!(:build) { create(:ci_bridge, status: :failed, pipeline: pipeline, project: pipeline.project) }
it_behaves_like 'renders the pipeline failed email correctly'
end
end end
...@@ -23,9 +23,8 @@ describe 'notify/pipeline_failed_email.text.erb' do ...@@ -23,9 +23,8 @@ describe 'notify/pipeline_failed_email.text.erb' do
assign(:merge_request, merge_request) assign(:merge_request, merge_request)
end end
shared_examples_for 'renders the pipeline failed email correctly' do
it 'renders the email correctly' do it 'renders the email correctly' do
job = create(:ci_build, :failed, pipeline: pipeline, project: pipeline.project)
render render
expect(rendered).to have_content('Your pipeline has failed') expect(rendered).to have_content('Your pipeline has failed')
...@@ -34,8 +33,21 @@ describe 'notify/pipeline_failed_email.text.erb' do ...@@ -34,8 +33,21 @@ describe 'notify/pipeline_failed_email.text.erb' do
expect(rendered).to have_content(pipeline.commit.author_name) expect(rendered).to have_content(pipeline.commit.author_name)
expect(rendered).to have_content("##{pipeline.id}") expect(rendered).to have_content("##{pipeline.id}")
expect(rendered).to have_content(pipeline.user.name) expect(rendered).to have_content(pipeline.user.name)
expect(rendered).to have_content("/-/jobs/#{job.id}/raw") expect(rendered).to have_content(build.id)
end end
it_behaves_like 'correct pipeline information for pipelines for merge requests' it_behaves_like 'correct pipeline information for pipelines for merge requests'
end
context 'when the pipeline contains a failed job' do
let!(:build) { create(:ci_build, :failed, pipeline: pipeline, project: pipeline.project) }
it_behaves_like 'renders the pipeline failed email correctly'
end
context 'when the latest failed job is a bridge job' do
let!(:build) { create(:ci_bridge, status: :failed, pipeline: pipeline, project: pipeline.project) }
it_behaves_like 'renders the pipeline failed email correctly'
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