Я пытаюсь проверить, что "статические" страницы (они ERB, но кэшируются), генерируемые через рельсы, не отображают какие-либо случайные флеш-уведомления, оставленные системой аутентификации (Devise) или где-либо еще.
Я пытался написать эту спецификацию контроллера, но похоже, что response.body отображает только шаблон, а не его макеты?
describe "so that static caching can be used" do
render_views
specify "flash notices are not rendered" do
# edit: the following flash lines don't do anything
# it's not the right flash object, this one is intended for
# inspecting after request not setting before request
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
Я попытался перейти на макет, который отображает флэш-уведомления и даже вставляет текст в шаблон макета, но не может привести к сбою спецификации.
Есть ли способ попросить rspec визуализировать шаблон с соответствующими макетами?
Является ли спецификация контроллера неправильным способом сделать это?
Это кажется неуместным, так как это больше связано с тем, какие макеты используются, и их содержимым, но процесс рендеринга начинается на контроллере, он получает результат, и я могу манипулировать содержимым флэш-хеша перед рендерингом.
Версии:
рельсы (3.0.10),
рельсы rspec (2.6.1),
rspec-core (2.6.4)
Спасибо, Ник