summaryrefslogtreecommitdiff
path: root/spec/finders/branches_finder_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/finders/branches_finder_spec.rb')
-rw-r--r--spec/finders/branches_finder_spec.rb43
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' } }