BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
0affdb85
Commit
0affdb85
authored
Apr 24, 2017
by
Kamil Trzciński
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'fix/gb/fix-incorrect-commit-status-badge-text' into 'master'
Fix incorrect commit status text on main project page See merge request !10863
parents
8e6dabb0
ee40ec7d
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
114 additions
and
21 deletions
+114
-21
ci_status_helper.rb
app/helpers/ci_status_helper.rb
+24
-1
_last_commit.html.haml
app/views/projects/_last_commit.html.haml
+1
-2
fix-gb-fix-incorrect-commit-status-badge-text.yml
...eleased/fix-gb-fix-incorrect-commit-status-badge-text.yml
+4
-0
ci_status_helper_spec.rb
spec/helpers/ci_status_helper_spec.rb
+38
-9
_last_commit.html.haml_spec.rb
spec/views/projects/_last_commit.html.haml_spec.rb
+22
-0
_commit_box.html.haml_spec.rb
spec/views/projects/commit/_commit_box.html.haml_spec.rb
+25
-9
No files found.
app/helpers/ci_status_helper.rb
View file @
0affdb85
##
# DEPRECATED
#
# These helpers are deprecated in favor of detailed CI/CD statuses.
#
# See 'detailed_status?` method and `Gitlab::Ci::Status` module.
#
module
CiStatusHelper
def
ci_status_path
(
pipeline
)
project
=
pipeline
.
project
namespace_project_pipeline_path
(
project
.
namespace
,
project
,
pipeline
)
end
# Is used by Commit and Merge Request Widget
def
ci_label_for_status
(
status
)
if
detailed_status?
(
status
)
return
status
.
label
...
...
@@ -22,6 +28,23 @@ module CiStatusHelper
end
end
def
ci_text_for_status
(
status
)
if
detailed_status?
(
status
)
return
status
.
text
end
case
status
when
'success'
'passed'
when
'success_with_warnings'
'passed'
when
'manual'
'blocked'
else
status
end
end
def
ci_status_for_statuseable
(
subject
)
status
=
subject
.
try
(
:status
)
||
'not found'
status
.
humanize
...
...
app/views/projects/_last_commit.html.haml
View file @
0affdb85
-
ref
=
local_assigns
.
fetch
(
:ref
)
-
status
=
commit
.
status
(
ref
)
-
if
status
=
link_to
pipelines_namespace_project_commit_path
(
commit
.
project
.
namespace
,
commit
.
project
,
commit
),
class:
"ci-status ci-
#{
status
}
"
do
=
ci_icon_for_status
(
status
)
=
ci_
label
_for_status
(
status
)
=
ci_
text
_for_status
(
status
)
=
link_to
commit
.
short_id
,
namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
),
class:
"commit_short_id"
=
link_to_gfm
commit
.
title
,
namespace_project_commit_path
(
project
.
namespace
,
project
,
commit
),
class:
"commit-row-message"
...
...
changelogs/unreleased/fix-gb-fix-incorrect-commit-status-badge-text.yml
0 → 100644
View file @
0affdb85
---
title
:
Fix lastest commit status text on main project page
merge_request
:
10863
author
:
spec/helpers/ci_status_helper_spec.rb
View file @
0affdb85
...
...
@@ -6,25 +6,54 @@ describe CiStatusHelper do
let
(
:success_commit
)
{
double
(
"Ci::Pipeline"
,
status:
'success'
)
}
let
(
:failed_commit
)
{
double
(
"Ci::Pipeline"
,
status:
'failed'
)
}
describe
'ci_icon_for_status'
do
describe
'
#
ci_icon_for_status'
do
it
'renders to correct svg on success'
do
expect
(
helper
).
to
receive
(
:render
).
with
(
'shared/icons/icon_status_success.svg'
,
anything
)
expect
(
helper
).
to
receive
(
:render
)
.
with
(
'shared/icons/icon_status_success.svg'
,
anything
)
helper
.
ci_icon_for_status
(
success_commit
.
status
)
end
it
'renders the correct svg on failure'
do
expect
(
helper
).
to
receive
(
:render
).
with
(
'shared/icons/icon_status_failed.svg'
,
anything
)
expect
(
helper
).
to
receive
(
:render
)
.
with
(
'shared/icons/icon_status_failed.svg'
,
anything
)
helper
.
ci_icon_for_status
(
failed_commit
.
status
)
end
end
describe
'#ci_text_for_status'
do
context
'when status is manual'
do
it
'changes the status to blocked'
do
expect
(
helper
.
ci_text_for_status
(
'manual'
))
.
to
eq
'blocked'
end
end
context
'when status is success'
do
it
'changes the status to passed'
do
expect
(
helper
.
ci_text_for_status
(
'success'
))
.
to
eq
'passed'
end
end
context
'when status is something else'
do
it
'returns status unchanged'
do
expect
(
helper
.
ci_text_for_status
(
'some-status'
))
.
to
eq
'some-status'
end
end
end
describe
"#pipeline_status_cache_key"
do
let
(
:pipeline_status
)
do
Gitlab
::
Cache
::
Ci
::
ProjectPipelineStatus
.
new
(
build
(
:project
),
sha:
'123abc'
,
status:
'success'
)
end
it
"builds a cache key for pipeline status"
do
pipeline_status
=
Gitlab
::
Cache
::
Ci
::
ProjectPipelineStatus
.
new
(
build
(
:project
),
sha:
"123abc"
,
status:
"success"
)
expect
(
helper
.
pipeline_status_cache_key
(
pipeline_status
)).
to
eq
(
"pipeline-status/123abc-success"
)
expect
(
helper
.
pipeline_status_cache_key
(
pipeline_status
))
.
to
eq
(
"pipeline-status/123abc-success"
)
end
end
end
spec/views/projects/_last_commit.html.haml_spec.rb
0 → 100644
View file @
0affdb85
require
'spec_helper'
describe
'projects/_last_commit'
,
:view
do
let
(
:project
)
{
create
(
:project
,
:repository
)
}
context
'when there is a pipeline present for the commit'
do
context
'when pipeline is blocked'
do
let!
(
:pipeline
)
do
create
(
:ci_pipeline
,
:blocked
,
project:
project
,
sha:
project
.
commit
.
id
)
end
it
'shows correct pipeline badge'
do
render
'projects/last_commit'
,
commit:
project
.
commit
,
project:
project
,
ref: :master
expect
(
rendered
).
to
have_text
"blocked
#{
project
.
commit
.
short_id
}
"
end
end
end
end
spec/views/projects/commit/_commit_box.html.haml_spec.rb
View file @
0affdb85
require
'spec_helper'
describe
'projects/commit/_commit_box.html.haml'
do
include
Devise
::
Test
::
ControllerHelpers
describe
'projects/commit/_commit_box.html.haml'
,
:view
do
let
(
:user
)
{
create
(
:user
)
}
let
(
:project
)
{
create
(
:project
,
:repository
)
}
...
...
@@ -18,14 +16,32 @@ describe 'projects/commit/_commit_box.html.haml' do
expect
(
rendered
).
to
have_text
(
"
#{
Commit
.
truncate_sha
(
project
.
commit
.
sha
)
}
"
)
end
it
'shows the last pipeline that ran for the commit'
do
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
id
,
status:
'success'
)
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
id
,
status:
'canceled'
)
third_pipeline
=
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
id
,
status:
'failed'
)
context
'when there is a pipeline present'
do
context
'when there are multiple pipelines for a commit'
do
it
'shows the last pipeline'
do
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
id
,
status:
'success'
)
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
id
,
status:
'canceled'
)
third_pipeline
=
create
(
:ci_pipeline
,
project:
project
,
sha:
project
.
commit
.
id
,
status:
'failed'
)
render
render
expect
(
rendered
).
to
have_text
(
"Pipeline #
#{
third_pipeline
.
id
}
failed"
)
end
end
expect
(
rendered
).
to
have_text
(
"Pipeline #
#{
third_pipeline
.
id
}
failed"
)
context
'when pipeline for the commit is blocked'
do
let!
(
:pipeline
)
do
create
(
:ci_pipeline
,
:blocked
,
project:
project
,
sha:
project
.
commit
.
id
)
end
it
'shows correct pipeline description'
do
render
expect
(
rendered
).
to
have_text
"Pipeline #
#{
pipeline
.
id
}
"
\
'waiting for manual action'
end
end
end
context
'viewing a commit'
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment