Skip to content

Commit 8bd9f60

Browse files
authored
Merge pull request rspec#1941 from ahorek/fix_custom_resolver
custom resolver support
2 parents 76fe087 + 9816cd3 commit 8bd9f60

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

lib/rspec/rails/view_rendering.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def _path_decorator(*paths)
137137
before do
138138
unless render_views?
139139
@_original_path_set = controller.class.view_paths
140-
path_set = @_original_path_set.map { |resolver| RESOLVER_CACHE[resolver.to_s] }
140+
path_set = @_original_path_set.map { |resolver| RESOLVER_CACHE[resolver] }
141141

142142
controller.class.view_paths = path_set
143143
controller.extend(EmptyTemplates)

spec/rspec/rails/view_rendering_spec.rb

+36
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,42 @@ def example.controller
146146
}.to_not raise_error
147147
end
148148

149+
context 'with empty template resolver' do
150+
class CustomResolver < ActionView::Resolver
151+
def custom_method
152+
true
153+
end
154+
end
155+
156+
it "works with custom resolvers" do
157+
custom_method_called = false
158+
ActionController::Base.view_paths = ActionView::PathSet.new([CustomResolver.new])
159+
group.class_exec do
160+
describe "example" do
161+
it do
162+
custom_method_called = ActionController::Base.view_paths.first.custom_method
163+
end
164+
end
165+
end.run(double.as_null_object)
166+
167+
expect(custom_method_called).to eq(true)
168+
end
169+
170+
it "works with strings" do
171+
decorated = false
172+
ActionController::Base.view_paths = ActionView::PathSet.new(['app/views', 'app/legacy_views'])
173+
group.class_exec do
174+
describe "example" do
175+
it do
176+
decorated = ActionController::Base.view_paths.all?{ |resolver| resolver.is_a?(ViewRendering::EmptyTemplateResolver::ResolverDecorator) }
177+
end
178+
end
179+
end.run(double.as_null_object)
180+
181+
expect(decorated).to eq(true)
182+
end
183+
end
184+
149185
def match_paths(*paths)
150186
eq paths.map { |path| File.expand_path path }
151187
end

0 commit comments

Comments
 (0)