diff options
author | Francisco Javier López <fjlopez@gitlab.com> | 2018-03-05 13:42:33 +0100 |
---|---|---|
committer | Francisco Javier López <fjlopez@gitlab.com> | 2018-03-05 13:50:12 +0100 |
commit | 55172bf737e5b4968e0b8ee6d02b7fee8f95f8eb (patch) | |
tree | 201a06b4521668f757631a8d0ba15823eff4ccd9 | |
parent | 0f05a33330e746095ed81c2603551a52d29654d6 (diff) | |
download | gitlab-ce-fj-41174-projects-groups-badges-api.tar.gz |
Added rendering badges specsfj-41174-projects-groups-badges-api
-rw-r--r-- | app/views/projects/_home_panel.html.haml | 2 | ||||
-rw-r--r-- | spec/views/projects/_home_panel.html.haml_spec.rb | 54 |
2 files changed, 54 insertions, 2 deletions
diff --git a/app/views/projects/_home_panel.html.haml b/app/views/projects/_home_panel.html.haml index 20485f047a8..7c91fb98cb6 100644 --- a/app/views/projects/_home_panel.html.haml +++ b/app/views/projects/_home_panel.html.haml @@ -24,7 +24,7 @@ = deleted_message % { project_name: fork_source_name(@project) } .project-badges - - @project.badges do |badge| + - @project.badges.each do |badge| - badge_link_url = badge.rendered_link_url(@project) %a{ href: badge_link_url } %img{ src: badge.rendered_image_url(@project), alt: badge_link_url } diff --git a/spec/views/projects/_home_panel.html.haml_spec.rb b/spec/views/projects/_home_panel.html.haml_spec.rb index 62af946dcab..15fce65979b 100644 --- a/spec/views/projects/_home_panel.html.haml_spec.rb +++ b/spec/views/projects/_home_panel.html.haml_spec.rb @@ -1,7 +1,8 @@ require 'spec_helper' describe 'projects/_home_panel' do - let(:project) { create(:project, :public) } + let(:group) { create(:group) } + let(:project) { create(:project, :public, namespace: group) } let(:notification_settings) do user&.notification_settings_for(project) @@ -35,4 +36,55 @@ describe 'projects/_home_panel' do expect(rendered).not_to have_selector('.notification_dropdown') end end + + context 'when project' do + let!(:user) { create(:user) } + let(:badges) { project.badges } + + context 'has no badges' do + it 'should not render any badge' do + render + + expect(rendered).to have_selector('.project-badges') + expect(rendered).not_to have_selector('.project-badges > a') + end + end + + shared_examples 'show badges' do + it 'should render the all badges' do + render + + expect(rendered).to have_selector('.project-badges a') + + badges.each do |badge| + expect(rendered).to have_link(href: badge.rendered_link_url) + end + end + end + + context 'only has group badges' do + before do + create(:group_badge, group: project.group) + end + + it_behaves_like 'show badges' + end + + context 'only has project badges' do + before do + create(:project_badge, project: project) + end + + it_behaves_like 'show badges' + end + + context 'has both group and project badges' do + before do + create(:project_badge, project: project) + create(:group_badge, group: project.group) + end + + it_behaves_like 'show badges' + end + end end |