Commit 399210d2 authored by Mark Chao's avatar Mark Chao

Merge branch '241990-show-all-inherited-labels-in-subgroups' into 'master'

Show origin path of labels on subgroup labels page

See merge request gitlab-org/gitlab!45040
parents 90b5a6c8 29916662
......@@ -264,6 +264,10 @@ module LabelsHelper
['issues', 'merge requests']
end
def show_labels_full_path?(project, group)
project || group&.subgroup?
end
private
def render_label_link(label_html, link:, title:, dataset:)
......
......@@ -10,7 +10,7 @@
.description-text.gl-flex-grow-1.gl-overflow-hidden
- if label.description.present?
= markdown_field(label, :description)
- elsif @project
- elsif show_labels_full_path?(@project, @group)
= render 'shared/label_full_path', label: label
%ul.label-links.gl-m-0.gl-p-0.gl-white-space-nowrap
- if show_label_issues_link
......@@ -25,6 +25,6 @@
·
%li.js-priority-badge.inline.gl-ml-3
.label-badge.gl-bg-blue-50= _('Prioritized label')
- if @project && label.description.present?
- if label.description.present? && show_labels_full_path?(@project, @group)
.gl-mt-3
= render 'shared/label_full_path', label: label
---
title: Show origin path of labels on subgroup labels page
merge_request: 45040
author:
type: added
......@@ -291,4 +291,34 @@ RSpec.describe LabelsHelper do
expect(tooltip).to eq('This is an image')
end
end
describe '#show_labels_full_path?' do
let_it_be(:group) { create(:group) }
let_it_be(:subgroup) { create(:group, parent: group) }
let_it_be(:project) { create(:project, group: group) }
context 'within a project' do
it 'returns truthy' do
expect(show_labels_full_path?(project, nil)).to be_truthy
end
end
context 'within a subgroup' do
it 'returns truthy' do
expect(show_labels_full_path?(nil, subgroup)).to be_truthy
end
end
context 'within a group' do
it 'returns falsey' do
expect(show_labels_full_path?(nil, group)).to be_falsey
end
end
context 'within the admin area' do
it 'returns falsey' do
expect(show_labels_full_path?(nil, nil)).to be_falsey
end
end
end
end
......@@ -19,23 +19,58 @@ RSpec.describe 'shared/_label_row.html.haml' do
render
end
it 'has label title' do
expect(rendered).to have_text(label.title)
end
it 'has a non-linked label title' do
expect(rendered).not_to have_css('a', text: label.title)
expect(rendered).not_to have_link(label.title)
end
it "has Issues link" do
expect(rendered).to have_css('a', text: 'Issues')
it 'has Issues link' do
expect(rendered).to have_link('Issues')
end
it "has Merge request link" do
expect(rendered).to have_css('a', text: 'Merge requests')
it 'has Merge request link' do
expect(rendered).to have_link('Merge requests')
end
it "shows the path from where the label was created" do
it 'shows the path from where the label was created' do
expect(rendered).to have_css('.label-badge', text: project.full_name)
end
end
context 'with a subgroup context' do
let_it_be(:subgroup) { create(:group, parent: group) }
let(:label) { build_stubbed(:group_label, group: subgroup).present(issuable_subject: subgroup) }
before do
assign(:group, label.group)
render
end
it 'has label title' do
expect(rendered).to have_text(label.title)
end
it 'has a non-linked label title' do
expect(rendered).not_to have_link(label.title)
end
it 'has Issues link' do
expect(rendered).to have_link('Issues')
end
it 'has Merge request link' do
expect(rendered).to have_link('Merge requests')
end
it 'shows the path from where the label was created' do
expect(rendered).to have_css('.label-badge', text: subgroup.full_name)
end
end
context 'with a group context' do
before do
assign(:group, label.group)
......@@ -43,19 +78,23 @@ RSpec.describe 'shared/_label_row.html.haml' do
render
end
it 'has label title' do
expect(rendered).to have_text(label.title)
end
it 'has a non-linked label title' do
expect(rendered).not_to have_css('a', text: label.title)
expect(rendered).not_to have_link(label.title)
end
it "has Issues link" do
expect(rendered).to have_css('a', text: 'Issues')
it 'has Issues link' do
expect(rendered).to have_link('Issues')
end
it "has Merge request link" do
expect(rendered).to have_css('a', text: 'Merge requests')
it 'has Merge request link' do
expect(rendered).to have_link('Merge requests')
end
it "does not show a path from where the label was created" do
it 'does not show a path from where the label was created' do
expect(rendered).not_to have_css('.label-badge')
end
end
......@@ -65,19 +104,23 @@ RSpec.describe 'shared/_label_row.html.haml' do
render
end
it 'has label title' do
expect(rendered).to have_text(label.title)
end
it 'has a non-linked label title' do
expect(rendered).not_to have_css('a', text: label.title)
expect(rendered).not_to have_link(label.title)
end
it "does not show Issues link" do
expect(rendered).not_to have_css('a', text: 'Issues')
it 'does not show Issues link' do
expect(rendered).not_to have_link('Issues')
end
it "does not show Merge request link" do
expect(rendered).not_to have_css('a', text: 'Merge requests')
it 'does not show Merge request link' do
expect(rendered).not_to have_link('Merge requests')
end
it "does not show a path from where the label was created" do
it 'does not show a path from where the label was created' do
expect(rendered).not_to have_css('.label-badge')
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