diff options
Diffstat (limited to 'spec/finders/branches_finder_spec.rb')
-rw-r--r-- | spec/finders/branches_finder_spec.rb | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/spec/finders/branches_finder_spec.rb b/spec/finders/branches_finder_spec.rb index 18f8d1adecc..9f185c8b8fb 100644 --- a/spec/finders/branches_finder_spec.rb +++ b/spec/finders/branches_finder_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe BranchesFinder do +RSpec.describe BranchesFinder, feature_category: :source_code_management do let(:user) { create(:user) } let(:project) { create(:project, :repository) } let(:repository) { project.repository } @@ -72,6 +72,19 @@ RSpec.describe BranchesFinder do end end + context 'by string' do + let(:params) { { search: 'add' } } + + it 'returns all branches contain name' do + result = subject + + result.each do |branch| + expect(branch.name).to include('add') + end + expect(result.count).to eq(5) + end + end + context 'by provided names' do let(:params) { { names: %w[fix csv lfs does-not-exist] } } @@ -127,6 +140,34 @@ RSpec.describe BranchesFinder do end end + context 'by invalid regex' do + let(:params) { { regex: '[' } } + + it { expect { subject }.to raise_error(RegexpError) } + end + + context 'by `|` regex' do + let(:params) { { regex: 'audio|add-ipython-files' } } + + it 'filters branches' do + branches = subject + expect(branches.first.name).to eq('add-ipython-files') + expect(branches.second.name).to eq('audio') + expect(branches.count).to eq(2) + end + end + + context 'by exclude name' do + let(:params) { { regex: '^[^a]' } } + + it 'filters branches' do + result = subject + result.each do |branch| + expect(branch.name).not_to start_with('a') + end + end + end + context 'by name with multiple wildcards' do let(:params) { { search: 'f*a*e' } } |