Skip to content

Commit a4235d5

Browse files
author
James McKinney
committed
add spec to test skip_sidebar!
1 parent 875494d commit a4235d5

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
require 'spec_helper'
2+
3+
describe ActiveAdmin::ResourceController::Sidebars do
4+
let(:controller){ Admin::PostsController }
5+
6+
context 'without before_filter' do
7+
before do
8+
ActiveAdmin.register Post
9+
end
10+
11+
subject { find_before_filter controller, :skip_sidebar! }
12+
13+
it { should set_skip_sidebar_to nil }
14+
end
15+
16+
describe '#skip_sidebar!' do
17+
before do
18+
ActiveAdmin.register Post do
19+
before_filter :skip_sidebar!
20+
end
21+
end
22+
23+
subject { find_before_filter controller, :skip_sidebar! }
24+
25+
it { should set_skip_sidebar_to true }
26+
end
27+
28+
def find_before_filter(controller, filter)
29+
#raise controller._process_action_callbacks.map(&:filter).inspect
30+
controller._process_action_callbacks.detect { |f| f.raw_filter == filter.to_sym }
31+
end
32+
33+
RSpec::Matchers.define :set_skip_sidebar_to do |expected|
34+
match do |filter|
35+
klass = filter && filter.klass || controller
36+
object = klass.new
37+
object.send filter.raw_filter if filter
38+
@actual = object.instance_variable_get(:@skip_sidebar)
39+
@actual == expected
40+
end
41+
42+
failure_message_for_should do |filter|
43+
message = "expected before_filter to set @skip_sidebar to '#{expected}', but was '#{@actual}'"
44+
end
45+
end
46+
end

0 commit comments

Comments
 (0)