41 lines
1,020 B
Ruby
41 lines
1,020 B
Ruby
# frozen_string_literal: true
|
|
|
|
RSpec.shared_examples 'snippets sort order' do
|
|
let(:params) { {} }
|
|
let(:sort_argument) { {} }
|
|
let(:sort_params) { params.merge(sort_argument)}
|
|
|
|
before do
|
|
sign_in(user)
|
|
|
|
stub_snippet_counter
|
|
end
|
|
|
|
subject { get :index, params: sort_params }
|
|
|
|
context 'when no sort param is provided' do
|
|
it 'calls SnippetsFinder with updated_at sort option' do
|
|
expect(SnippetsFinder).to receive(:new).with(user,
|
|
hash_including(sort: 'updated_desc')).and_call_original
|
|
|
|
subject
|
|
end
|
|
end
|
|
|
|
context 'when sort param is provided' do
|
|
let(:order) { 'created_desc' }
|
|
let(:sort_argument) { { sort: order } }
|
|
|
|
it 'calls SnippetsFinder with the given sort param' do
|
|
expect(SnippetsFinder).to receive(:new).with(user,
|
|
hash_including(sort: order)).and_call_original
|
|
|
|
subject
|
|
end
|
|
end
|
|
|
|
def stub_snippet_counter
|
|
allow(Snippets::CountService)
|
|
.to receive(:new).and_return(double(:count_service, execute: {}))
|
|
end
|
|
end
|