From f6417b82aad6b29b72dade9bdfcfd48e5857881d Mon Sep 17 00:00:00 2001 From: Toon Claes Date: Tue, 16 Apr 2019 11:49:25 +0200 Subject: Include link to raw job log in plain-text emails People who prefer plain text email also might prefer the raw job log files. So include the link directly to there. Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/56849 --- app/views/notify/links/ci/builds/_build.text.erb | 2 +- .../unreleased/tc-raw-log-in-plaintext-mail.yml | 5 +++ .../notify/pipeline_failed_email.text.erb_spec.rb | 39 ++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 changelogs/unreleased/tc-raw-log-in-plaintext-mail.yml create mode 100644 spec/views/notify/pipeline_failed_email.text.erb_spec.rb diff --git a/app/views/notify/links/ci/builds/_build.text.erb b/app/views/notify/links/ci/builds/_build.text.erb index 773ae8174e9..afb02f97e5a 100644 --- a/app/views/notify/links/ci/builds/_build.text.erb +++ b/app/views/notify/links/ci/builds/_build.text.erb @@ -1 +1 @@ -Job #<%= build.id %> ( <%= pipeline_job_url(pipeline, build) %> ) +Job #<%= build.id %> ( <%= raw_project_job_url(pipeline.project, build) %> ) diff --git a/changelogs/unreleased/tc-raw-log-in-plaintext-mail.yml b/changelogs/unreleased/tc-raw-log-in-plaintext-mail.yml new file mode 100644 index 00000000000..373c2847ef2 --- /dev/null +++ b/changelogs/unreleased/tc-raw-log-in-plaintext-mail.yml @@ -0,0 +1,5 @@ +--- +title: Include link to raw job log in plain-text emails +merge_request: 27409 +author: +type: changed diff --git a/spec/views/notify/pipeline_failed_email.text.erb_spec.rb b/spec/views/notify/pipeline_failed_email.text.erb_spec.rb new file mode 100644 index 00000000000..a7d3dc09fd4 --- /dev/null +++ b/spec/views/notify/pipeline_failed_email.text.erb_spec.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true +require 'spec_helper' + +describe 'notify/pipeline_failed_email.text.erb' do + include Devise::Test::ControllerHelpers + + let(:user) { create(:user) } + let(:project) { create(:project, :repository) } + let(:merge_request) { create(:merge_request, :simple, source_project: project) } + + let(:pipeline) do + create(:ci_pipeline, + :failed, + project: project, + user: user, + ref: project.default_branch, + sha: project.commit.sha) + end + + before do + assign(:project, project) + assign(:pipeline, pipeline) + assign(:merge_request, merge_request) + end + + it 'renders the email correctly' do + job = create(:ci_build, :failed, pipeline: pipeline, project: pipeline.project) + + render + + expect(rendered).to have_content('Your pipeline has failed') + expect(rendered).to have_content(pipeline.project.name) + expect(rendered).to have_content(pipeline.git_commit_message.truncate(50)) + expect(rendered).to have_content(pipeline.commit.author_name) + expect(rendered).to have_content("##{pipeline.id}") + expect(rendered).to have_content(pipeline.user.name) + expect(rendered).to have_content("/-/jobs/#{job.id}/raw") + end +end -- cgit v1.2.1