diff options
author | Yorick Peterse <yorickpeterse@gmail.com> | 2016-06-01 17:39:12 +0200 |
---|---|---|
committer | Yorick Peterse <yorickpeterse@gmail.com> | 2016-06-16 14:04:45 +0200 |
commit | 19a290e7bfcb5e74a0e9975fd3f7396ca0e2e990 (patch) | |
tree | b66ccc595d014cc48251d2e0c8ede9e02be0aa1c /spec/lib/banzai/filter/issue_reference_filter_spec.rb | |
parent | fdcafe72d1e103821ecad075dec82a84ad24387b (diff) | |
download | gitlab-ce-19a290e7bfcb5e74a0e9975fd3f7396ca0e2e990.tar.gz |
Reduce queries in IssueReferenceFilterbanzai-issue-filter-queries
This reduces the number of queries executed in IssueReferenceFilter by
retrieving the various projects/issues that may be referenced in batches
_before_ iterating over all the HTML nodes.
A chunk of the logic resides in AbstractReferenceFilter so it can be
re-used by other filters in the future.
Diffstat (limited to 'spec/lib/banzai/filter/issue_reference_filter_spec.rb')
-rw-r--r-- | spec/lib/banzai/filter/issue_reference_filter_spec.rb | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/spec/lib/banzai/filter/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/issue_reference_filter_spec.rb index 8e6a264970d..25f0bc2092f 100644 --- a/spec/lib/banzai/filter/issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/issue_reference_filter_spec.rb @@ -25,7 +25,9 @@ describe Banzai::Filter::IssueReferenceFilter, lib: true do let(:reference) { issue.to_reference } it 'ignores valid references when using non-default tracker' do - expect(project).to receive(:get_issue).with(issue.iid).and_return(nil) + expect_any_instance_of(described_class).to receive(:find_object). + with(project, issue.iid). + and_return(nil) exp = act = "Issue #{reference}" expect(reference_filter(act).to_html).to eq exp @@ -107,8 +109,9 @@ describe Banzai::Filter::IssueReferenceFilter, lib: true do let(:reference) { issue.to_reference(project) } it 'ignores valid references when cross-reference project uses external tracker' do - expect_any_instance_of(Project).to receive(:get_issue). - with(issue.iid).and_return(nil) + expect_any_instance_of(described_class).to receive(:find_object). + with(project2, issue.iid). + and_return(nil) exp = act = "Issue #{reference}" expect(reference_filter(act).to_html).to eq exp |