diff --git a/app/helpers/issuables_helper.rb b/app/helpers/issuables_helper.rb index 02117345c4d0ec58d5cd13305682ccbce70e2fd4..2048b03013569bd18afe7432dba75dd666593a55 100644 --- a/app/helpers/issuables_helper.rb +++ b/app/helpers/issuables_helper.rb @@ -155,15 +155,19 @@ def issuable_meta_author_status(author) def issuable_meta(issuable, project) icon_name = - if WorkItems::Type.base_types.key?(Issue.last.issue_type) + if issuable.is_a?(Issue) && WorkItems::Type.base_types.key?(issuable&.issue_type.downcase) "issue-type-#{issuable.issue_type.downcase}" else 'issue-type-issue' end output = [] - output << content_tag(:span, sprite_icon("#{icon_name}", css_class: 'gl-icon gl-vertical-align-middle'), class: 'gl-mr-2') - output << "#{issuable.issue_type.capitalize} created #{time_ago_with_tooltip(issuable.created_at)} by ".html_safe + if issuable.is_a?(Issue) + output << content_tag(:span, sprite_icon("#{icon_name}", css_class: 'gl-icon gl-vertical-align-middle'), class: 'gl-mr-2') + output << "#{issuable.issue_type.capitalize} created #{time_ago_with_tooltip(issuable.created_at)} by ".html_safe + elsif + output << "Created #{time_ago_with_tooltip(issuable.created_at)} by ".html_safe + end if issuable.is_a?(Issue) && issuable.service_desk_reply_to output << "#{html_escape(issuable.service_desk_reply_to)} via " diff --git a/spec/helpers/issuables_helper_spec.rb b/spec/helpers/issuables_helper_spec.rb index 05424de213451174c3b3bf86a84141afb3b1a569..d14237b5270404cfff6e36f981fd5bc811ee73ec 100644 --- a/spec/helpers/issuables_helper_spec.rb +++ b/spec/helpers/issuables_helper_spec.rb @@ -104,11 +104,12 @@ let_it_be(:project) { create(:project) } describe 'Issue type' do - let(:issuable) { build(:merge_request, source_project: project, author: user, created_at: '2022-07-27') } + let(:user) { create(:user) } + let(:issuable) { create(:issue) } it 'displays the icon of Issue Type' do content = helper.issuable_meta(issuable, project) - expect(content).to match('<span class="gl-mr-2"><svg class="s16 gl-icon gl-vertical-align-middle">') + expect(content).to start_with('<span class="gl-mr-2"><svg class="s16 gl-icon gl-vertical-align-middle"') end end