Commit 4b4ce0c

mo khan <mo@mokhan.ca>
2015-02-28 19:07:38
add specs for items#new and items#edit.
1 parent 8c9198e
Changed files (2)
app
spec
app/controllers/items_controller.rb
@@ -10,9 +10,11 @@ class ItemsController < ApplicationController
   end
 
   def new
+    @item = Item.new
   end
 
   def edit
+    @item = current_user.items.find(params[:id])
   end
 
   def create
spec/controllers/items_controller_spec.rb
@@ -1,7 +1,6 @@
 require "rails_helper"
 
 RSpec.describe ItemsController, type: :controller do
-
   context "when logged in" do
     let(:user) { create(:user) }
 
@@ -35,5 +34,33 @@ RSpec.describe ItemsController, type: :controller do
         expect(response.status).to eql(404)
       end
     end
+
+    describe "#new" do
+      it 'loads up an empty item' do
+        get :new
+        expect(assigns(:item)).to_not be_nil
+      end
+    end
+
+    describe "#edit" do
+      let(:my_item) { create(:item, user: user) }
+
+      it 'loads the item to edit' do
+        get :edit, id: my_item.id
+        expect(assigns(:item)).to eql(my_item)
+      end
+
+      context "when attempting to edit someone elses item" do
+        let(:other_item) { create(:item, user: other_user) }
+        let(:other_user) { create(:user) }
+
+        it 'returns a 404' do
+          get :edit, id: other_item.id
+
+          expect(assigns(:item)).to be_nil
+          expect(response.status).to eql(404)
+        end
+      end
+    end
   end
 end