Implements the HasFilters controller concern

This commit is contained in:
kikito
2015-09-02 13:21:05 +02:00
parent 15115f0179
commit 83d08b0017
2 changed files with 50 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
require 'rails_helper'
describe 'HasFilters' do
class FakeController < ActionController::Base; end
controller(FakeController) do
include HasFilters
has_filters ['all', 'pending', 'reviewed'], only: :index
def index
render text: "#{@current_filter} (#{@valid_filters.join(' ')})"
end
end
it "has the valid filters set up" do
get :index
expect(response.body).to eq('all (all pending reviewed)')
end
describe "the current filter" do
it "defaults to the first one on the list" do
get :index
expect(response.body).to eq('all (all pending reviewed)')
end
it "can be changed by the filter param" do
get :index, filter: 'pending'
expect(response.body).to eq('pending (all pending reviewed)')
end
it "defaults to the first one on the list if given a bogus filter" do
get :index, filter: 'foobar'
expect(response.body).to eq('all (all pending reviewed)')
end
end
end