Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/diff/position_tracer_spec.rb')
-rw-r--r--spec/lib/gitlab/diff/position_tracer_spec.rb66
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