# frozen_string_literal: true

require 'rails_helper'

describe "posts/edit" do
  before do
    controller.stub(:current_user) { nil }
    @author = FactoryBot.create(:member)
    @post = assign(:post, FactoryBot.create(:post, author: @author))
  end

  context "logged in" do
    before 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 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
