diff options
Diffstat (limited to 'spec/lib/gitlab/danger/helper_spec.rb')
-rw-r--r-- | spec/lib/gitlab/danger/helper_spec.rb | 56 |
1 files changed, 14 insertions, 42 deletions
diff --git a/spec/lib/gitlab/danger/helper_spec.rb b/spec/lib/gitlab/danger/helper_spec.rb index a8f113a8cd1..bd5c746dd54 100644 --- a/spec/lib/gitlab/danger/helper_spec.rb +++ b/spec/lib/gitlab/danger/helper_spec.rb @@ -351,33 +351,23 @@ RSpec.describe Gitlab::Danger::Helper do end context 'having specific changes' do - it 'has database and backend categories' do - changed_files = ['usage_data.rb', 'lib/gitlab/usage_data.rb', 'ee/lib/ee/gitlab/usage_data.rb'] - - changed_files.each do |file| - allow(fake_git).to receive(:diff_for_file).with(file) { double(:diff, patch: "+ count(User.active)") } - - expect(helper.categories_for_file(file)).to eq([:database, :backend]) - end - end - - it 'has backend category' do - allow(fake_git).to receive(:diff_for_file).with('usage_data.rb') { double(:diff, patch: "+ alt_usage_data(User.active)") } - - expect(helper.categories_for_file('usage_data.rb')).to eq([:backend]) - end - - it 'has backend category for changes outside usage_data files' do - allow(fake_git).to receive(:diff_for_file).with('user.rb') { double(:diff, patch: "+ count(User.active)") } - - expect(helper.categories_for_file('user.rb')).to eq([:backend]) + where(:expected_categories, :patch, :changed_files) do + [:database, :backend] | '+ count(User.active)' | ['usage_data.rb', 'lib/gitlab/usage_data.rb', 'ee/lib/ee/gitlab/usage_data.rb'] + [:database, :backend] | '+ estimate_batch_distinct_count(User.active)' | ['usage_data.rb'] + [:backend] | '+ alt_usage_data(User.active)' | ['usage_data.rb'] + [:backend] | '+ count(User.active)' | ['user.rb'] + [:backend] | '+ count(User.active)' | ['usage_data/topology.rb'] + [:backend] | '+ foo_count(User.active)' | ['usage_data.rb'] end - it 'has backend category for files that are not usage_data.rb' do - changed_file = 'usage_data/topology.rb' - allow(fake_git).to receive(:diff_for_file).with(changed_file) { double(:diff, patch: "+ count(User.active)") } + with_them do + it 'has the correct categories' do + changed_files.each do |file| + allow(fake_git).to receive(:diff_for_file).with(file) { double(:diff, patch: patch) } - expect(helper.categories_for_file(changed_file)).to eq([:backend]) + expect(helper.categories_for_file(file)).to eq(expected_categories) + end + end end end end @@ -412,24 +402,6 @@ RSpec.describe Gitlab::Danger::Helper do end end - describe '#sanitize_mr_title' do - where(:mr_title, :expected_mr_title) do - 'My MR title' | 'My MR title' - 'WIP: My MR title' | 'My MR title' - 'Draft: My MR title' | 'My MR title' - '(Draft) My MR title' | 'My MR title' - '[Draft] My MR title' | 'My MR title' - '[DRAFT] My MR title' | 'My MR title' - 'DRAFT: My MR title' | 'My MR title' - end - - with_them do - subject { helper.sanitize_mr_title(mr_title) } - - it { is_expected.to eq(expected_mr_title) } - end - end - describe '#security_mr?' do it 'returns false when `gitlab_helper` is unavailable' do expect(helper).to receive(:gitlab_helper).and_return(nil) |