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