summaryrefslogtreecommitdiff
path: root/spec/finders
diff options
context:
space:
mode:
authortiagonbotelho <tiagonbotelho@hotmail.com>2016-07-07 17:19:21 +0100
committertiagonbotelho <tiagonbotelho@hotmail.com>2016-07-19 19:30:10 +0100
commit766f9cf2202e7dbab758db4e03bc0e82500943eb (patch)
treeea32b90efaa908a95f8d0b55319c0e62fdda1312 /spec/finders
parent81e57e783e8882de21d27d9191c09404ed7faca3 (diff)
downloadgitlab-ce-766f9cf2202e7dbab758db4e03bc0e82500943eb.tar.gz
implements the basic filter functionality
Diffstat (limited to 'spec/finders')
-rw-r--r--spec/finders/branches_finder_spec.rb75
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