summaryrefslogtreecommitdiff
path: root/spec/helpers
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2019-11-29 15:06:43 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2019-11-29 15:06:43 +0000
commiteac0da9a47f0c7b8b970833d7d5b96cfee057bf7 (patch)
tree7b7865053435c6dcb4e2d945fcf45e309331c91b /spec/helpers
parentb860c6ba2607541e3b5bdf0fc2daaa9ed41a8726 (diff)
downloadgitlab-ce-eac0da9a47f0c7b8b970833d7d5b96cfee057bf7.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/helpers')
-rw-r--r--spec/helpers/diff_helper_spec.rb45
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb
index 47c076e3322..def3078c652 100644
--- a/spec/helpers/diff_helper_spec.rb
+++ b/spec/helpers/diff_helper_spec.rb
@@ -258,6 +258,51 @@ describe DiffHelper do
end
end
+ context '#render_overflow_warning?' do
+ let(:diffs_collection) { instance_double(Gitlab::Diff::FileCollection::MergeRequestDiff, diff_files: diff_files) }
+ let(:diff_files) { Gitlab::Git::DiffCollection.new(files) }
+ let(:safe_file) { { too_large: false, diff: '' } }
+ let(:large_file) { { too_large: true, diff: '' } }
+ let(:files) { [safe_file, safe_file] }
+
+ before do
+ allow(diff_files).to receive(:overflow?).and_return(false)
+ end
+
+ context 'when neither collection nor individual file hit the limit' do
+ it 'returns false and does not log any overflow events' do
+ expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_collection_limits)
+ expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_single_file_limits)
+
+ expect(render_overflow_warning?(diffs_collection)).to be false
+ end
+ end
+
+ context 'when the file collection has an overflow' do
+ before do
+ allow(diff_files).to receive(:overflow?).and_return(true)
+ end
+
+ it 'returns false and only logs collection overflow event' do
+ expect(Gitlab::Metrics).to receive(:add_event).with(:diffs_overflow_collection_limits).exactly(:once)
+ expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_single_file_limits)
+
+ expect(render_overflow_warning?(diffs_collection)).to be true
+ end
+ end
+
+ context 'when two individual files are too big' do
+ let(:files) { [safe_file, large_file, large_file] }
+
+ it 'returns false and only logs single file overflow events' do
+ expect(Gitlab::Metrics).to receive(:add_event).with(:diffs_overflow_single_file_limits).exactly(:once)
+ expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_collection_limits)
+
+ expect(render_overflow_warning?(diffs_collection)).to be false
+ end
+ end
+ end
+
context '#diff_file_path_text' do
it 'returns full path by default' do
expect(diff_file_path_text(diff_file)).to eq(diff_file.new_path)