diff options
Diffstat (limited to 'spec/lib/gitlab/diff/position_tracer_spec.rb')
-rw-r--r-- | spec/lib/gitlab/diff/position_tracer_spec.rb | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/spec/lib/gitlab/diff/position_tracer_spec.rb b/spec/lib/gitlab/diff/position_tracer_spec.rb index 4aa4f160fc9..059058c5499 100644 --- a/spec/lib/gitlab/diff/position_tracer_spec.rb +++ b/spec/lib/gitlab/diff/position_tracer_spec.rb @@ -116,5 +116,71 @@ RSpec.describe Gitlab::Diff::PositionTracer do expect(diff_refs.head_sha).to eq(new_diff_refs.head_sha) end end + + describe 'when requesting diffs' do + shared_examples 'it does not call diff stats' do + it 'does not call diff stats' do + expect_next_instance_of(Gitlab::GitalyClient::CommitService) do |instance| + expect(instance).not_to receive(:diff_stats) + end + + diff_files + end + end + + shared_examples 'it calls diff stats' do + it 'calls diff stats' do + expect_next_instance_of(Gitlab::GitalyClient::CommitService) do |instance| + expect(instance).to receive(:diff_stats).and_call_original + end + + diff_files + end + end + + context 'when remove_request_stats_for_tracing is true' do + context 'ac diffs' do + let(:diff_files) { subject.ac_diffs.diff_files } + + it_behaves_like 'it does not call diff stats' + end + + context 'bd diffs' do + let(:diff_files) { subject.bd_diffs.diff_files } + + it_behaves_like 'it does not call diff stats' + end + + context 'cd diffs' do + let(:diff_files) { subject.cd_diffs.diff_files } + + it_behaves_like 'it does not call diff stats' + end + end + + context 'when remove_request_stats_for_tracing is false' do + before do + stub_feature_flags(remove_request_stats_for_tracing: false) + end + + context 'ac diffs' do + let(:diff_files) { subject.ac_diffs.diff_files } + + it_behaves_like 'it calls diff stats' + end + + context 'bd diffs' do + let(:diff_files) { subject.bd_diffs.diff_files } + + it_behaves_like 'it calls diff stats' + end + + context 'cd diffs' do + let(:diff_files) { subject.cd_diffs.diff_files } + + it_behaves_like 'it calls diff stats' + end + end + end end end |