summaryrefslogtreecommitdiff
path: root/spec/models/merge_request_diff_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/merge_request_diff_spec.rb')
-rw-r--r--spec/models/merge_request_diff_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/models/merge_request_diff_spec.rb b/spec/models/merge_request_diff_spec.rb
index 6d2ad3f0475..016af4f269b 100644
--- a/spec/models/merge_request_diff_spec.rb
+++ b/spec/models/merge_request_diff_spec.rb
@@ -566,6 +566,45 @@ describe MergeRequestDiff do
it 'returns affected file paths' do
expect(subject.modified_paths).to eq(%w{foo bar baz})
end
+
+ context "when fallback_on_overflow is true" do
+ let(:merge_request) { create(:merge_request, source_branch: 'feature', target_branch: 'master') }
+ let(:diff) { merge_request.merge_request_diff }
+
+ # before do
+ # # Temporarily unstub diff.modified_paths in favor of original code
+ # #
+ # allow(diff).to receive(:modified_paths).and_call_original
+ # end
+
+ context "when the merge_request_diff is overflowed" do
+ before do
+ expect(diff).to receive(:overflow?).and_return(true)
+ end
+
+ it "returns file paths via project.repository#diff_stats" do
+ expect(diff.project.repository).to receive(:diff_stats).and_call_original
+
+ expect(
+ diff.modified_paths(fallback_on_overflow: true)
+ ).to eq(diff.modified_paths)
+ end
+ end
+
+ context "when the merge_request_diff is not overflowed" do
+ before do
+ expect(subject).to receive(:overflow?).and_return(false)
+ end
+
+ it "returns expect file paths withoout called #modified_paths_for_overflowed_mr" do
+ expect(subject.project.repository).not_to receive(:diff_stats)
+
+ expect(
+ subject.modified_paths(fallback_on_overflow: true)
+ ).to eq(subject.modified_paths)
+ end
+ end
+ end
end
describe '#opening_external_diff' do