/
helper_example_group_spec.rb
84 lines (73 loc) · 2.49 KB
/
helper_example_group_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
module RSpec::Rails
RSpec.describe HelperExampleGroup do
module ::FoosHelper
class InternalClass
end
end
subject { HelperExampleGroup }
it_behaves_like "an rspec-rails example group mixin", :helper,
'./spec/helpers/', '.\\spec\\helpers\\'
it "provides a controller_path based on the helper module's name" do
example = double
allow(example).to receive_message_chain(:example_group, :described_class) { FoosHelper }
helper_spec = Object.new.extend HelperExampleGroup
expect(helper_spec.__send__(:_controller_path, example)).to eq("foos")
end
describe "#helper" do
it "returns the instance of AV::Base provided by AV::TC::Behavior" do
without_partial_double_verification do
helper_spec = Object.new.extend HelperExampleGroup
expect(helper_spec).to receive(:view_assigns)
av_tc_b_view = double('_view')
expect(av_tc_b_view).to receive(:assign)
allow(helper_spec).to receive(:_view) { av_tc_b_view }
expect(helper_spec.helper).to eq(av_tc_b_view)
end
end
before do
Object.const_set(:ApplicationHelper, Module.new)
end
after do
Object.__send__(:remove_const, :ApplicationHelper)
end
it "includes ApplicationHelper" do
group = RSpec::Core::ExampleGroup.describe do
include HelperExampleGroup
if ActionView::Base.respond_to?(:empty)
def _view
ActionView::Base.empty
end
else
def _view
ActionView::Base.new
end
end
end
expect(group.new.helper).to be_kind_of(ApplicationHelper)
end
end
end
RSpec.describe HelperExampleGroup::ClassMethods do
describe "determine_default_helper_class" do
let(:group) do
RSpec::Core::ExampleGroup.describe do
include HelperExampleGroup
end
end
context "the described is a module" do
it "returns the module" do
allow(group).to receive(:described_class) { FoosHelper }
expect(group.determine_default_helper_class("ignore this"))
.to eq(FoosHelper)
end
end
context "the described is a class" do
it "returns nil" do
allow(group).to receive(:described_class) { FoosHelper::InternalClass }
expect(group.determine_default_helper_class("ignore this"))
.to be_nil
end
end
end
end
end