53 lines
1.6 KiB
Ruby
53 lines
1.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.shared_examples 'search results sorted' do
|
|
context 'sort: created_desc' do
|
|
let(:sort) { 'created_desc' }
|
|
|
|
it 'sorts results by created_at' do
|
|
expect(results_created.objects(scope).map(&:id)).to eq([new_result.id, old_result.id, very_old_result.id])
|
|
end
|
|
end
|
|
|
|
context 'sort: created_asc' do
|
|
let(:sort) { 'created_asc' }
|
|
|
|
it 'sorts results by created_at' do
|
|
expect(results_created.objects(scope).map(&:id)).to eq([very_old_result.id, old_result.id, new_result.id])
|
|
end
|
|
end
|
|
|
|
context 'sort: updated_desc' do
|
|
let(:sort) { 'updated_desc' }
|
|
|
|
it 'sorts results by updated_desc' do
|
|
expect(results_updated.objects(scope).map(&:id)).to eq([new_updated.id, old_updated.id, very_old_updated.id])
|
|
end
|
|
end
|
|
|
|
context 'sort: updated_asc' do
|
|
let(:sort) { 'updated_asc' }
|
|
|
|
it 'sorts results by updated_asc' do
|
|
expect(results_updated.objects(scope).map(&:id)).to eq([very_old_updated.id, old_updated.id, new_updated.id])
|
|
end
|
|
end
|
|
end
|
|
|
|
RSpec.shared_examples 'search results sorted by popularity' do
|
|
context 'sort: popularity_desc' do
|
|
let(:sort) { 'popularity_desc' }
|
|
|
|
it 'sorts results by upvotes' do
|
|
expect(results_popular.objects(scope).map(&:id)).to eq([popular_result.id, less_popular_result.id, non_popular_result.id])
|
|
end
|
|
end
|
|
|
|
context 'sort: popularity_asc' do
|
|
let(:sort) { 'popularity_asc' }
|
|
|
|
it 'sorts results by created_at' do
|
|
expect(results_popular.objects(scope).map(&:id)).to eq([non_popular_result.id, less_popular_result.id, popular_result.id])
|
|
end
|
|
end
|
|
end
|