I'm trying to test that "static" pages (they're ERB, but get cached), generated through rails, don't render any stray flash notices left over by the authentication system (Devise) or wherever else.
I've tried writing this controller spec, but it appears that response.body only renders the template, not its layouts? describe "so that static caching can be used" do render_views specify "flash notices are not rendered" do flash[:notice] = "flash boo" flash[:error] = "flash boo" flash[:alert] = "flash boo" get :show, :page => 'privacy_policy' response.body.should have_content('flash boo') end end class StaticPagesController < ApplicationController layout 'master' def show response.headers['Cache-Control'] = "public, max-age=#{6.hours}" render "static_pages/#{params[:page]}" end end I've tried changing to a layout which does render flash notices, and even inserting the text into the layout template, but can't make the spec fail. Is there a way to ask rspec to render the template with the appropriate layouts as well? Is a controller spec the wrong way to try and do this? It seems out of place, as it's more to do with which layouts are being used, and their contents, but the rendering process starts at the controller, it receives the result, and I can manipulate the flash hash contents before rendering. Versions: rails (3.0.10) rspec-rails (2.6.1) rspec-core (2.6.4) I've also posted on stackoverflow @ http://stackoverflow.com/questions/7221388/rspec-render-views-ignores-layouts-want-to-test-static-cached-page-does-not-disp Thanks, Nick
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users