Commit e89d4741 authored by Stan Hu's avatar Stan Hu

Fix regression in rendering Markdown references that do not exist

Closes #30972
parent 309bab43
...@@ -136,7 +136,8 @@ module Banzai ...@@ -136,7 +136,8 @@ module Banzai
nodes.each_with_object({}) do |node, hash| nodes.each_with_object({}) do |node, hash|
if node.has_attribute?(attribute) if node.has_attribute?(attribute)
hash[node] = objects_by_id[node.attr(attribute).to_i] obj = objects_by_id[node.attr(attribute).to_i]
hash[node] = obj if obj
end end
end end
end end
......
...@@ -114,8 +114,27 @@ describe Banzai::ReferenceParser::BaseParser, lib: true do ...@@ -114,8 +114,27 @@ describe Banzai::ReferenceParser::BaseParser, lib: true do
expect(hash).to eq({ link => user }) expect(hash).to eq({ link => user })
end end
it 'returns an empty Hash when the list of nodes is empty' do it 'returns an empty Hash when entry does not exist in the database' do
expect(subject.grouped_objects_for_nodes([], User, 'data-user')).to eq({}) link = double(:link)
expect(link).to receive(:has_attribute?).
with('data-user').
and_return(true)
expect(link).to receive(:attr).
with('data-user').
and_return('1')
nodes = [link]
bad_id = user.id + 100
expect(subject).to receive(:unique_attribute_values).
with(nodes, 'data-user').
and_return([bad_id.to_s])
hash = subject.grouped_objects_for_nodes(nodes, User, 'data-user')
expect(hash).to eq({})
end end
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