Commit 157c63e3

mo k <mo@mokhan.ca>
2012-09-11 03:16:54
fix the tutorial specs.
1 parent b5883ca
Changed files (2)
app/controllers/tutorials_controller.rb
@@ -21,7 +21,7 @@ class TutorialsController < ApplicationController
     @tutorial = current_user.tutorials.create(params[:tutorial])
     respond_to do |format|
       if @tutorial.save
-        format.html { redirect_to( '/tutorials/' ) }
+        format.html { redirect_to( '/tutorials' ) }
       else
         flash[:error] = @tutorial.errors.full_messages
         format.html { render :action => "new" }
spec/controllers/tutorials_controller_spec.rb
@@ -1,23 +1,5 @@
 require 'spec_helper'
 
-# This spec was generated by rspec-rails when you ran the scaffold generator.
-# It demonstrates how one might use RSpec to specify the controller code that
-# was generated by Rails when you ran the scaffold generator.
-#
-# It assumes that the implementation code is generated by the rails scaffold
-# generator.  If you are using any extension libraries to generate different
-# controller code, this generated spec may or may not pass.
-#
-# It only uses APIs available in rails and/or rspec-rails.  There are a number
-# of tools you can use to make these specs even more expressive, but we're
-# sticking to rails and rspec-rails APIs to keep things simple and stable.
-#
-# Compared to earlier versions of this generator, there is very limited use of
-# stubs and message expectations in this spec.  Stubs are only used when there
-# is no simpler way to get a handle on the object needed for the example.
-# Message expectations are only used when there is no simpler way to specify
-# that an instance is receiving a specific message.
-
 describe TutorialsController do
 
   # This should return the minimal set of attributes required to create a valid
@@ -34,9 +16,15 @@ describe TutorialsController do
     {}
   end
 
+  let(:user){ FactoryGirl.create(:user) }
+
+  before (:each) do
+    request.env['warden'] = mock(Warden, :authenticate => user, :authenticate! => user)
+  end
+
   describe "GET index" do
     it "assigns all tutorials as @tutorials" do
-      tutorial = Tutorial.create! valid_attributes
+      tutorial = user.tutorials.create! valid_attributes
       get :index, {}, valid_session
       assigns(:tutorials).should eq([tutorial])
     end
@@ -44,7 +32,7 @@ describe TutorialsController do
 
   describe "GET show" do
     it "assigns the requested tutorial as @tutorial" do
-      tutorial = Tutorial.create! valid_attributes
+      tutorial = user.tutorials.create! valid_attributes
       get :show, {:id => tutorial.to_param}, valid_session
       assigns(:tutorial).should eq(tutorial)
     end
@@ -59,7 +47,7 @@ describe TutorialsController do
 
   describe "GET edit" do
     it "assigns the requested tutorial as @tutorial" do
-      tutorial = Tutorial.create! valid_attributes
+      tutorial = user.tutorials.create! valid_attributes
       get :edit, {:id => tutorial.to_param}, valid_session
       assigns(:tutorial).should eq(tutorial)
     end
@@ -81,7 +69,7 @@ describe TutorialsController do
 
       it "redirects to the created tutorial" do
         post :create, {:tutorial => valid_attributes}, valid_session
-        response.should redirect_to(Tutorial.last)
+        response.should redirect_to(tutorials_path)
       end
     end
 
@@ -105,7 +93,7 @@ describe TutorialsController do
   describe "PUT update" do
     describe "with valid params" do
       it "updates the requested tutorial" do
-        tutorial = Tutorial.create! valid_attributes
+        tutorial = user.tutorials.create! valid_attributes
         # Assuming there are no other tutorials in the database, this
         # specifies that the Tutorial created on the previous line
         # receives the :update_attributes message with whatever params are
@@ -115,13 +103,13 @@ describe TutorialsController do
       end
 
       it "assigns the requested tutorial as @tutorial" do
-        tutorial = Tutorial.create! valid_attributes
+        tutorial = user.tutorials.create! valid_attributes
         put :update, {:id => tutorial.to_param, :tutorial => valid_attributes}, valid_session
         assigns(:tutorial).should eq(tutorial)
       end
 
       it "redirects to the tutorial" do
-        tutorial = Tutorial.create! valid_attributes
+        tutorial = user.tutorials.create! valid_attributes
         put :update, {:id => tutorial.to_param, :tutorial => valid_attributes}, valid_session
         response.should redirect_to(tutorial)
       end
@@ -129,7 +117,7 @@ describe TutorialsController do
 
     describe "with invalid params" do
       it "assigns the tutorial as @tutorial" do
-        tutorial = Tutorial.create! valid_attributes
+        tutorial = user.tutorials.create! valid_attributes
         # Trigger the behavior that occurs when invalid params are submitted
         Tutorial.any_instance.stub(:save).and_return(false)
         put :update, {:id => tutorial.to_param, :tutorial => {}}, valid_session
@@ -137,7 +125,7 @@ describe TutorialsController do
       end
 
       it "re-renders the 'edit' template" do
-        tutorial = Tutorial.create! valid_attributes
+        tutorial = user.tutorials.create! valid_attributes
         # Trigger the behavior that occurs when invalid params are submitted
         Tutorial.any_instance.stub(:save).and_return(false)
         put :update, {:id => tutorial.to_param, :tutorial => {}}, valid_session
@@ -148,14 +136,14 @@ describe TutorialsController do
 
   describe "DELETE destroy" do
     it "destroys the requested tutorial" do
-      tutorial = Tutorial.create! valid_attributes
+      tutorial = user.tutorials.create! valid_attributes
       expect {
         delete :destroy, {:id => tutorial.to_param}, valid_session
       }.to change(Tutorial, :count).by(-1)
     end
 
     it "redirects to the tutorials list" do
-      tutorial = Tutorial.create! valid_attributes
+      tutorial = user.tutorials.create! valid_attributes
       delete :destroy, {:id => tutorial.to_param}, valid_session
       response.should redirect_to(tutorials_url)
     end