Skip to content

Fix render_views for anonymous controllers on 1.8.7. #525

Closed
wants to merge 1 commit into from
View
30 features/controller_specs/anonymous_controller.feature
@@ -328,3 +328,33 @@ Feature: anonymous controller
"""
When I run `rspec spec`
Then the examples should all pass
+
+ Scenario: rendering views
+ Given a file named "spec/controllers/application_controller_spec.rb" with:
+ """
+ require "spec_helper"
+
+ describe ApplicationController do
+ render_views
+
+ controller do
+ def index
+ @name = "Bob"
+ end
+ end
+
+ describe "#index" do
+ it "greets the user" do
+ get :index
+ response.body.should =~ /Hello there, Bob/
+ end
+ end
+ end
+ """
+ And a file named "app/views/anonymous/index.html.erb" with:
+ """
+ Hello there, <%= @name %>
+ """
+ When I run `rspec spec`
+ Then the examples should all pass
+
View
6 lib/rspec/rails/example/controller_example_group.rb
@@ -58,10 +58,10 @@ def controller(base_class = nil, &body)
controller_class :
ApplicationController
- metadata[:example_group][:described_class] = Class.new(base_class, &body)
- metadata[:example_group][:described_class].singleton_class.class_eval do
- def name; "AnonymousController" end
+ metadata[:example_group][:described_class] = Class.new(base_class) do
+ def self.name; "AnonymousController"; end
end
+ metadata[:example_group][:described_class].class_eval(&body)
before do
@orig_routes, @routes = @routes, ActionDispatch::Routing::RouteSet.new
Something went wrong with that request. Please try again.