Commit 8c9198e
Changed files (2)
app
controllers
spec
controllers
app/controllers/items_controller.rb
@@ -1,9 +1,12 @@
class ItemsController < ApplicationController
+ rescue_from ActiveRecord::RecordNotFound, with: :record_not_found
+
def index
@items = current_user.items
end
def show
+ @item = current_user.items.find(params[:id])
end
def new
@@ -20,4 +23,10 @@ class ItemsController < ApplicationController
def destroy
end
+
+ private
+
+ def record_not_found
+ render text: "404 Not Found", status: 404
+ end
end
spec/controllers/items_controller_spec.rb
@@ -1,4 +1,4 @@
-require 'rails_helper'
+require "rails_helper"
RSpec.describe ItemsController, type: :controller do
@@ -14,10 +14,26 @@ RSpec.describe ItemsController, type: :controller do
let!(:my_item) { create(:item, user: user) }
let!(:their_item) { create(:item, user: other_user) }
- it 'loads all your items' do
+ it "loads all your items" do
get :index
expect(assigns(:items)).to match_array([my_item])
end
end
+
+ describe "#show" do
+ let(:item) { create(:item, user: user) }
+ let(:other_user) { create(:user) }
+ let(:other_guys_item) { create(:item, user: other_user) }
+
+ it "loads your item" do
+ get :show, id: item.id
+ expect(assigns(:item)).to eql(item)
+ end
+
+ it 'does not load other peoples items' do
+ get :show, id: other_guys_item.id
+ expect(response.status).to eql(404)
+ end
+ end
end
end