Skip to content

Commit b0c67e3

Browse files
committed
address compatibility with RSpec 2.x
see rspec/rspec-core#1361
1 parent 54dbaca commit b0c67e3

File tree

2 files changed

+38
-13
lines changed

2 files changed

+38
-13
lines changed

lib/rspec/rails/example/helper_example_group.rb

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
require 'rspec/version'
12
require 'rspec/rails/view_assigns'
23

34
module RSpec
@@ -11,8 +12,14 @@ module HelperExampleGroup
1112

1213
# @private
1314
module ClassMethods
14-
def determine_constant_from_test_name(_ignore)
15-
described_class if yield(described_class)
15+
if RSpec::Version::STRING.to_f > 3.0
16+
def determine_constant_from_test_name(_ignore)
17+
described_class if yield(described_class)
18+
end
19+
else
20+
def determine_default_helper_class(_ignore)
21+
described_class
22+
end
1623
end
1724
end
1825

spec/rspec/rails/example/helper_example_group_spec.rb

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,37 @@ def _view
5858
end
5959
end
6060

61-
context "the described is a module" do
62-
it "returns the module" do
63-
allow(group).to receive(:described_class) { FoosHelper }
64-
expect(group.determine_default_helper_class("ignore this")).
65-
to eq(FoosHelper)
61+
if RSpec::Version::STRING.to_f > 3.0
62+
context "the described is a module" do
63+
it "returns the module" do
64+
allow(group).to receive(:described_class) { FoosHelper }
65+
expect(group.determine_default_helper_class("ignore this")).
66+
to eq(FoosHelper)
67+
end
68+
end
69+
70+
context "the described is a class" do
71+
it "returns nil" do
72+
allow(group).to receive(:described_class) { FoosHelper::InternalClass }
73+
expect(group.determine_default_helper_class("ignore this")).
74+
to be_nil
75+
end
76+
end
77+
else
78+
context "the described is a module" do
79+
it "returns the module" do
80+
allow(group).to receive(:described_class) { FoosHelper }
81+
expect(group.determine_default_helper_class("ignore this")).
82+
to eq(FoosHelper)
83+
end
6684
end
67-
end
6885

69-
context "the described is a class" do
70-
it "returns nil" do
71-
allow(group).to receive(:described_class) { FoosHelper::InternalClass }
72-
expect(group.determine_default_helper_class("ignore this")).
73-
to be_nil
86+
context "the described is a class" do
87+
it "returns the class" do
88+
allow(group).to receive(:described_class) { FoosHelper::InternalClass }
89+
expect(group.determine_default_helper_class("ignore this")).
90+
to eq(FoosHelper::InternalClass)
91+
end
7492
end
7593
end
7694
end

0 commit comments

Comments
 (0)