diff options
author | tiagonbotelho <tiagonbotelho@hotmail.com> | 2016-07-07 17:19:21 +0100 |
---|---|---|
committer | tiagonbotelho <tiagonbotelho@hotmail.com> | 2016-07-19 19:30:10 +0100 |
commit | 766f9cf2202e7dbab758db4e03bc0e82500943eb (patch) | |
tree | ea32b90efaa908a95f8d0b55319c0e62fdda1312 /spec/finders/branches_finder_spec.rb | |
parent | 81e57e783e8882de21d27d9191c09404ed7faca3 (diff) | |
download | gitlab-ce-766f9cf2202e7dbab758db4e03bc0e82500943eb.tar.gz |
implements the basic filter functionality
Diffstat (limited to 'spec/finders/branches_finder_spec.rb')
-rw-r--r-- | spec/finders/branches_finder_spec.rb | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/spec/finders/branches_finder_spec.rb b/spec/finders/branches_finder_spec.rb new file mode 100644 index 00000000000..e4281431280 --- /dev/null +++ b/spec/finders/branches_finder_spec.rb @@ -0,0 +1,75 @@ +require 'spec_helper' + +describe BranchesFinder do + let(:user) { create(:user) } + let(:project) { create(:project) } + let(:repository) { project.repository } + + describe '#execute' do + context 'sort only' do + it 'sorts by name' do + branches_finder = described_class.new(repository, {}) + + result = branches_finder.execute + + expect(result.first.name).to eq("'test'") + end + + it 'sorts by recently_updated' do + branches_finder = described_class.new(repository, { sort: 'recently_updated' }) + result = branches_finder.execute + + expect(result.first.name).to eq('expand-collapse-lines') + end + + it 'sorts by last_updated' do + branches_finder = described_class.new(repository, { sort: 'last_updated' }) + + result = branches_finder.execute + + expect(result.first.name).to eq('feature') + end + end + + context 'filter only' do + it 'filters branches by name' do + branches_finder = described_class.new(repository, { search: 'fix' }) + + result = branches_finder.execute + + expect(result.first.name).to eq('fix') + expect(result.count).to eq(1) + end + + it 'does not find any branch with that name' do + branches_finder = described_class.new(repository, { search: 'random' }) + + result = branches_finder.execute + + expect(result.count).to eq(0) + end + end + + context 'filter and sort' do + it 'filters branches by name and sorts by recently_updated' do + params = { sort: 'recently_updated', search: 'feature' } + branches_finder = described_class.new(repository, params) + + result = branches_finder.execute + + expect(result.first.name).to eq('feature_conflict') + expect(result.count).to eq(2) + end + + it 'filters branches by name and sorts by last_updated' do + params = { sort: 'last_updated', search: 'feature' } + branches_finder = described_class.new(repository, params) + + result = branches_finder.execute + + expect(result.first.name).to eq('feature') + expect(result.count).to eq(2) + end + end + end +end |