Skip to content

Commit 686b1be

Browse files
pdswanSam Phippen
authored andcommitted
allow helper module specs to spec internal classes, fix #1339
1 parent e27a461 commit 686b1be

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

lib/rspec/rails/example/helper_example_group.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ module HelperExampleGroup
1212

1313
# @private
1414
module ClassMethods
15-
def determine_default_helper_class(_ignore)
16-
described_class
15+
def determine_constant_from_test_name(_ignore)
16+
described_class if yield(described_class)
1717
end
1818
end
1919

spec/rspec/rails/example/helper_example_group_spec.rb

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
module RSpec::Rails
44
describe HelperExampleGroup do
5-
module ::FoosHelper; end
5+
module ::FoosHelper
6+
class InternalClass
7+
end
8+
end
9+
610
subject { HelperExampleGroup }
711

812
it_behaves_like "an rspec-rails example group mixin", :helper,
@@ -48,11 +52,26 @@ def _view
4852

4953
describe HelperExampleGroup::ClassMethods do
5054
describe "determine_default_helper_class" do
51-
it "returns the helper module passed to describe" do
52-
helper_spec = Object.new.extend HelperExampleGroup::ClassMethods
53-
allow(helper_spec).to receive(:described_class) { FoosHelper }
54-
expect(helper_spec.determine_default_helper_class("ignore this")).
55-
to eq(FoosHelper)
55+
let(:group) do
56+
RSpec::Core::ExampleGroup.describe do
57+
include HelperExampleGroup
58+
end
59+
end
60+
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)
66+
end
67+
end
68+
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
74+
end
5675
end
5776
end
5877
end

0 commit comments

Comments
 (0)