diff options
Diffstat (limited to 'spec/helpers/diff_helper_spec.rb')
-rw-r--r-- | spec/helpers/diff_helper_spec.rb | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/spec/helpers/diff_helper_spec.rb b/spec/helpers/diff_helper_spec.rb index 20fa8d62884..dfea1020c52 100644 --- a/spec/helpers/diff_helper_spec.rb +++ b/spec/helpers/diff_helper_spec.rb @@ -291,6 +291,8 @@ RSpec.describe DiffHelper do end describe '#render_overflow_warning?' do + using RSpec::Parameterized::TableSyntax + let(:diffs_collection) { instance_double(Gitlab::Diff::FileCollection::MergeRequestDiff, raw_diff_files: diff_files) } let(:diff_files) { Gitlab::Git::DiffCollection.new(files) } let(:safe_file) { { too_large: false, diff: '' } } @@ -299,13 +301,42 @@ RSpec.describe DiffHelper do before do allow(diff_files).to receive(:overflow?).and_return(false) + allow(diff_files).to receive(:overflow_max_bytes?).and_return(false) + allow(diff_files).to receive(:overflow_max_files?).and_return(false) + allow(diff_files).to receive(:overflow_max_lines?).and_return(false) + allow(diff_files).to receive(:collapsed_safe_bytes?).and_return(false) + allow(diff_files).to receive(:collapsed_safe_files?).and_return(false) + allow(diff_files).to receive(:collapsed_safe_lines?).and_return(false) end - context 'when neither collection nor individual file hit the limit' do + context 'when no limits are hit' 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(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_max_bytes_limits) + expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_max_files_limits) + expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_max_lines_limits) + expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_collapsed_bytes_limits) + expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_collapsed_files_limits) + expect(Gitlab::Metrics).not_to receive(:add_event).with(:diffs_overflow_collapsed_lines_limits) + + expect(render_overflow_warning?(diffs_collection)).to be false + end + end + + where(:overflow_method, :event_name) do + :overflow_max_bytes? | :diffs_overflow_max_bytes_limits + :overflow_max_files? | :diffs_overflow_max_files_limits + :overflow_max_lines? | :diffs_overflow_max_lines_limits + :collapsed_safe_bytes? | :diffs_overflow_collapsed_bytes_limits + :collapsed_safe_files? | :diffs_overflow_collapsed_files_limits + :collapsed_safe_lines? | :diffs_overflow_collapsed_lines_limits + end + with_them do + it 'returns false and only logs the correct collection overflow event' do + allow(diff_files).to receive(overflow_method).and_return(true) + expect(Gitlab::Metrics).to receive(:add_event).with(event_name).once expect(render_overflow_warning?(diffs_collection)).to be false end end @@ -315,9 +346,8 @@ RSpec.describe DiffHelper 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) + it 'returns true and only logs all the correct collection overflow event' do + expect(Gitlab::Metrics).to receive(:add_event).with(:diffs_overflow_collection_limits).once expect(render_overflow_warning?(diffs_collection)).to be true end |