Commit b1699ff7 authored by Kamil Trzciński's avatar Kamil Trzciński

Merge branch 'tc-pipeline-show-trigger-date' into 'master'

Correctly show pipeline creator & created_at

Closes #29255

See merge request !9936
parents 9bd611fa 0759db80
module UsersHelper
def user_link(user)
link_to(user.name, user_path(user),
title: user.email,
class: 'has-tooltip commit-committer-link')
end
end
.page-content-header
.header-main-content
= render 'ci/status/badge', status: @pipeline.detailed_status(current_user)
%strong Pipeline ##{@commit.pipelines.last.id}
triggered #{time_ago_with_tooltip(@commit.authored_date)} by
= author_avatar(@commit, size: 24)
= commit_author_link(@commit)
%strong Pipeline ##{@pipeline.id}
triggered #{time_ago_with_tooltip(@pipeline.created_at)}
- if @pipeline.user
by
= user_avatar(user: @pipeline.user, size: 24)
= user_link(@pipeline.user)
.header-action-buttons
- if can?(current_user, :update_pipeline, @pipeline.project)
- if @pipeline.retryable?
......
---
title: Show correct user & creation time in heading of the pipeline page
merge_request: 9936
author:
......@@ -11,12 +11,16 @@ describe 'Commits' do
stub_ci_pipeline_to_return_yaml_file
end
let(:creator) { create(:user) }
let!(:pipeline) do
create(:ci_pipeline,
project: project,
user: creator,
ref: project.default_branch,
sha: project.commit.sha,
status: :success)
status: :success,
created_at: 5.months.ago)
end
context 'commit status is Generic Commit Status' do
......@@ -80,7 +84,8 @@ describe 'Commits' do
it 'shows pipeline`s data' do
expect(page).to have_content pipeline.sha[0..7]
expect(page).to have_content pipeline.git_commit_message
expect(page).to have_content pipeline.git_author_name
expect(page).to have_content pipeline.user.name
expect(page).to have_content pipeline.created_at.strftime('%b %d, %Y')
end
end
......@@ -150,7 +155,7 @@ describe 'Commits' do
it do
expect(page).to have_content pipeline.sha[0..7]
expect(page).to have_content pipeline.git_commit_message
expect(page).to have_content pipeline.git_author_name
expect(page).to have_content pipeline.user.name
expect(page).to have_link('Download artifacts')
expect(page).not_to have_link('Cancel running')
expect(page).not_to have_link('Retry')
......@@ -169,7 +174,7 @@ describe 'Commits' do
it do
expect(page).to have_content pipeline.sha[0..7]
expect(page).to have_content pipeline.git_commit_message
expect(page).to have_content pipeline.git_author_name
expect(page).to have_content pipeline.user.name
expect(page).not_to have_link('Download artifacts')
expect(page).not_to have_link('Cancel running')
expect(page).not_to have_link('Retry')
......
......@@ -45,7 +45,7 @@ describe 'Pipeline', :feature, :js do
include_context 'pipeline builds'
let(:project) { create(:project) }
let(:pipeline) { create(:ci_pipeline, project: project, ref: 'master', sha: project.commit.id) }
let(:pipeline) { create(:ci_pipeline, project: project, ref: 'master', sha: project.commit.id, user: user) }
before { visit namespace_project_pipeline_path(project.namespace, project, pipeline) }
......
require 'rails_helper'
describe AvatarsHelper do
let(:user) { create(:user) }
describe '#user_avatar' do
subject { helper.user_avatar(user: user) }
it "links to the user's profile" do
is_expected.to include("href=\"#{user_path(user)}\"")
end
it "has the user's name as title" do
is_expected.to include("title=\"#{user.name}\"")
end
it "contains the user's avatar image" do
is_expected.to include(CGI.escapeHTML(user.avatar_url(16)))
end
end
end
require 'rails_helper'
describe UsersHelper do
let(:user) { create(:user) }
describe '#user_link' do
subject { helper.user_link(user) }
it "links to the user's profile" do
is_expected.to include("href=\"#{user_path(user)}\"")
end
it "has the user's email as title" do
is_expected.to include("title=\"#{user.email}\"")
end
end
end
......@@ -3,8 +3,9 @@ require 'spec_helper'
describe 'projects/pipelines/show' do
include Devise::Test::ControllerHelpers
let(:user) { create(:user) }
let(:project) { create(:project) }
let(:pipeline) { create(:ci_empty_pipeline, project: project, sha: project.commit.id) }
let(:pipeline) { create(:ci_empty_pipeline, project: project, sha: project.commit.id, user: user) }
before do
controller.prepend_view_path('app/views/projects')
......@@ -21,6 +22,7 @@ describe 'projects/pipelines/show' do
assign(:project, project)
assign(:pipeline, pipeline)
assign(:commit, project.commit)
allow(view).to receive(:can?).and_return(true)
end
......@@ -31,6 +33,12 @@ describe 'projects/pipelines/show' do
expect(rendered).to have_css('.js-pipeline-graph')
expect(rendered).to have_css('.js-grouped-pipeline-dropdown')
# header
expect(rendered).to have_text("##{pipeline.id}")
expect(rendered).to have_css('time', text: pipeline.created_at.strftime("%b %d, %Y"))
expect(rendered).to have_selector(%Q(img[alt$="#{pipeline.user.name}'s avatar"]))
expect(rendered).to have_link(pipeline.user.name, href: user_path(pipeline.user))
# stages
expect(rendered).to have_text('Build')
expect(rendered).to have_text('Test')
......
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