Files
growstuff/spec/views/posts/edit.html.haml_spec.rb
milesgould bb6e9e32e6 De-deprecate controller and view specs
We deprecated controller and view specs on the grounds that they were
brittle, and were a poorer measure of user experience than feature
specs. However, feature specs have their own problems: they're much
slower to run, and flakier (see #901). We also ran into a few cases
where feature specs erroneously passed because they were checking for
the presence of a string that occurred in the error page!

Hence, we're cautiously un-deprecating controller and view specs.

Fixes #1132
2017-11-24 19:02:54 +13:00

50 lines
1.3 KiB
Ruby

require 'rails_helper'
describe "posts/edit" do
before(:each) do
controller.stub(:current_user) { nil }
@author = FactoryBot.create(:member)
@post = assign(:post, FactoryBot.create(:post, author: @author))
end
context "logged in" do
before(:each) do
sign_in @author
render
end
it "renders the edit post form" do
assert_select "form", action: posts_path(@post), method: "post" do
assert_select "input#post_subject", name: "post[subject]"
assert_select "textarea#post_body", name: "post[body]"
end
end
it 'no hidden forum field' do
assert_select "input#post_forum_id[type=hidden]", false
end
it 'no forum mentioned' do
rendered.should_not have_content "This post will be posted in the forum"
end
context "forum specified" do
before(:each) do
@forum = assign(:forum, FactoryBot.create(:forum))
assign(:post, FactoryBot.create(:post,
forum: @forum,
author: @author))
render
end
it 'creates a hidden field' do
assert_select "input#post_forum_id[type='hidden'][value='#{@forum.id}']"
end
it 'tells the user what forum it will be posted in' do
rendered.should have_content "This post will be posted in the forum #{@forum.name}"
end
end
end
end