Skip to content

Commit

Permalink
custom resolver support
Browse files Browse the repository at this point in the history
  • Loading branch information
ahorek authored and sebjacobs committed Mar 15, 2019
1 parent 6d1cbba commit ad3d750
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/rspec/rails/view_rendering.rb
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ def _path_decorator(*paths)
before do
unless render_views?
@_original_path_set = controller.class.view_paths
path_set = @_original_path_set.map { |resolver| RESOLVER_CACHE[resolver.to_s] }
path_set = @_original_path_set.map { |resolver| RESOLVER_CACHE[resolver] }

controller.class.view_paths = path_set
controller.extend(EmptyTemplates)
Expand Down
36 changes: 36 additions & 0 deletions spec/rspec/rails/view_rendering_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,42 @@ def example.controller
}.to_not raise_error
end

context 'with empty template resolver' do
class CustomResolver < ActionView::Resolver
def custom_method
true
end
end

it "works with custom resolvers" do
custom_method_called = false
ActionController::Base.view_paths = ActionView::PathSet.new([CustomResolver.new])
group.class_exec do
describe "example" do
it do
custom_method_called = ActionController::Base.view_paths.first.custom_method
end
end
end.run(double.as_null_object)

expect(custom_method_called).to eq(true)
end

it "works with strings" do
decorated = false
ActionController::Base.view_paths = ActionView::PathSet.new(['app/views', 'app/legacy_views'])
group.class_exec do
describe "example" do
it do
decorated = ActionController::Base.view_paths.all?{ |resolver| resolver.is_a?(ViewRendering::EmptyTemplateResolver::ResolverDecorator) }
end
end
end.run(double.as_null_object)

expect(decorated).to eq(true)
end
end

def match_paths(*paths)
eq paths.map { |path| File.expand_path path }
end
Expand Down

0 comments on commit ad3d750

Please sign in to comment.