spec/controllers/votes_controller_spec.rb in neutral-0.0.7 vs spec/controllers/votes_controller_spec.rb in neutral-0.0.8

- old
+ new

@@ -1,26 +1,28 @@ require 'spec_helper' -describe Neutral::VotesController do +describe Neutral::VotesController, type: :controller do routes { Neutral::Engine.routes } include VotesControllerHelpers include VotesControllerBaseClass - let(:voteable) { FactoryGirl.create(:post) } - let(:voter) { FactoryGirl.create(:user) } - let(:vote) { FactoryGirl.create(:vote) } + let!(:voteable) { FactoryGirl.create(:post) } + let!(:voter) { FactoryGirl.create(:user) } + let!(:vote) { FactoryGirl.create(:vote) } describe "POST #create" do context "when valid" do context "when login required" do before do controller.stub(:current_user).and_return(voter) end it "creates a new vote" do - expect { create(voteable) }.to change(Neutral::Vote, :count).by(1) + initial_count = Neutral::Vote.count + create(voteable) + expect(Neutral::Vote.count).to eq(initial_count + 1) end it "assigns a newly created vote as @vote" do create(voteable) assigns(:vote).should be_a(Neutral::Vote) @@ -60,11 +62,16 @@ context "when invalid" do context "when login required" do subject { -> { create(voteable) } } - it { should_not change(Neutral::Vote, :count).by(1) } - its(:call) { should render_template('errors/require_login') } + it "does not create a vote" do + initial_count = Neutral::Vote.count + subject.call + expect(Neutral::Vote.count).to eq(initial_count) + end + + it { expect(subject.call).to render_template('errors/require_login') } end end end describe "PATCH #update" do