summaryrefslogtreecommitdiff
path: root/spec/controllers
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2013-07-26 19:38:52 -0600
committermo khan <mo@mokhan.ca>2013-07-26 19:38:52 -0600
commit44571b3d8a35806cc3cbdd66ff28e35ebb42e45a (patch)
tree5b04c7271e89617efb052c3762b8e85f3f493c27 /spec/controllers
parent12832c1fb4ed327abdbd62e5b882f93fd426c85f (diff)
fix creation controllers specs
Diffstat (limited to 'spec/controllers')
-rw-r--r--spec/controllers/creations_controller_spec.rb79
1 files changed, 42 insertions, 37 deletions
diff --git a/spec/controllers/creations_controller_spec.rb b/spec/controllers/creations_controller_spec.rb
index 17d737e8..1546c8d7 100644
--- a/spec/controllers/creations_controller_spec.rb
+++ b/spec/controllers/creations_controller_spec.rb
@@ -1,16 +1,16 @@
require 'spec_helper'
describe CreationsController do
- let(:user){ FactoryGirl.create(:user) }
- let(:creation){ FactoryGirl.create(:creation, :user => user) }
+ let(:user){ create(:user) }
+ let(:creation){ create(:creation, :user => user) }
before(:each) do
photo = File.new(File.join(Rails.root, 'spec/fixtures/images/example.png'))
creation.add_photo(photo)
end
- describe "GET index" do
- let(:restricted_creation){ FactoryGirl.create(:creation, :user => user, :is_restricted => true) }
+ describe :index do
+ let(:restricted_creation){ create(:creation, :user => user, :is_restricted => true) }
before { get :index }
@@ -26,89 +26,94 @@ describe CreationsController do
context "when logged in" do
before { http_login(user) }
- describe "GET show" do
- it "assigns the requested creation as @creation" do
+ describe :show do
+ it "assigns the requested creation" do
get :show, :id => creation.id
- assigns(:creation).should eq(creation)
+ assigns(:creation).should == creation
end
end
- describe "GET new" do
- it "assigns a new creation as @creation" do
- new_creation = fake
- Creation.stub(:new) { new_creation }
+ describe :new do
+ it "assigns a new creation" do
+ new_creation = double
+ Creation.stub(:new).and_return(new_creation)
get :new
assigns(:creation).should be(new_creation)
end
end
- describe "GET edit" do
+ describe :edit do
it "assigns the requested creation as @creation" do
get :edit, :id => creation.id
assigns(:creation).should eq(creation)
end
end
- describe "POST create" do
+ describe :post do
describe "with valid params" do
+ let(:category) { create(:category) }
+
before :each do
- creations = fake
- user.stub(:creations).and_return(creations)
- creations.stub(:create).and_return(creation)
- post :create, :creation => {:id => creation.id, :name => 'new name'}
+ post :create, :creation => { :name => 'stone', :story => 'morning glory', :is_restricted => true, :watermark => "watery"}, :creation_tags => 'cake', :category_id => category.id
end
- it "assigns a newly created creation as @creation" do
- assigns(:creation).should eq(creation)
+ it "assigns a newly created creation" do
+ assigns(:creation).should_not be_nil
+ assigns(:creation).name.should == 'stone'
+ assigns(:creation).story.should == 'morning glory'
+ assigns(:creation).is_restricted.should be_true
+ assigns(:creation).watermark.should == 'watery'
end
it "redirects to the created creation" do
- response.should redirect_to(new_creation_photo_path(creation))
+ response.should redirect_to(new_creation_photo_path(assigns(:creation)))
end
end
describe "with invalid params" do
- before :each do
- post :create, :creation => {:name => ''}
- end
+ before { post :create, :creation => {:name => ''} }
+
it "re-renders the 'new' template" do
response.should render_template("new")
end
+
it "should include the errors" do
- assigns(:creation).errors.any?.should be_true
+ assigns(:creation).errors.count.should > 0
end
end
end
- describe "PUT update" do
+ describe :patch do
describe "with valid params" do
- before :each do
- put :update, :id => creation.id, :creation => {:name => 'params'}
- end
+ before { patch :update, :id => creation.id, :creation => {:name => 'params'} }
+
it "assigns the requested creation as @creation" do
- assigns(:creation).should eq(creation)
+ assigns(:creation).should == creation
end
it "redirects to the creation" do
- response.should redirect_to("/creations/#{creation.id}-params/photos/new")
+ response.should redirect_to new_creation_photo_path(creation.reload)
end
end
describe "with invalid params" do
- before :each do
- put :update, :id => creation.id, :creation => {:name=> nil }
- end
+ before { put :update, :id => creation.id, :creation => {:name=> nil } }
+
it "assigns the creation as @creation" do
- assigns(:creation).should eq(creation)
+ assigns(:creation).should == creation
end
it "re-renders the 'edit' template" do
response.should render_template("edit")
end
+
+ it "should display an error" do
+ flash[:error].should_not be_nil
+ end
end
end
- describe "DELETE destroy" do
+ describe :destroy do
before :each do
delete :destroy, :id => creation.id
end
@@ -123,8 +128,8 @@ describe CreationsController do
end
describe :mine do
- let!(:my_creation) { FactoryGirl.create(:creation) }
- let!(:other_creation) { FactoryGirl.create(:creation) }
+ let!(:my_creation) { create(:creation) }
+ let!(:other_creation) { create(:creation) }
before :each do
user.creations << my_creation