diff options
Diffstat (limited to 'spec/lib/banzai/filter/references/user_reference_filter_spec.rb')
-rw-r--r-- | spec/lib/banzai/filter/references/user_reference_filter_spec.rb | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb index e4703606b47..70cbdb080a4 100644 --- a/spec/lib/banzai/filter/references/user_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/user_reference_filter_spec.rb @@ -189,7 +189,7 @@ RSpec.describe Banzai::Filter::References::UserReferenceFilter do filter = described_class.new(document, project: project) ns = user.namespace - expect(filter.namespaces).to eq({ ns.path => ns }) + expect(filter.send(:namespaces)).to eq({ ns.path => ns }) end end @@ -198,7 +198,28 @@ RSpec.describe Banzai::Filter::References::UserReferenceFilter do document = Nokogiri::HTML.fragment("<p>#{get_reference(user)}</p>") filter = described_class.new(document, project: project) - expect(filter.usernames).to eq([user.username]) + expect(filter.send(:usernames)).to eq([user.username]) + end + end + + context 'checking N+1' do + let(:user2) { create(:user) } + let(:group) { create(:group) } + let(:reference2) { user2.to_reference } + let(:reference3) { group.to_reference } + + it 'does not have N+1 per multiple user references', :use_sql_query_cache do + markdown = "#{reference}" + + control_count = ActiveRecord::QueryRecorder.new(skip_cached: false) do + reference_filter(markdown) + end.count + + markdown = "#{reference} @qwertyuiopzx @wertyuio @ertyu @rtyui #{reference2} #{reference3}" + + expect do + reference_filter(markdown) + end.not_to exceed_all_query_limit(control_count) end end end |