summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authormo <mokha@cisco.com>2017-05-06 09:32:42 -0600
committermo <mokha@cisco.com>2017-05-06 09:32:42 -0600
commit845909163daeb2410099167cd289022e107be2d2 (patch)
tree06bd4701479cef3fa353244f16fe098025fdea9f /spec
parentff4fdd2e27d2c9c3aff72555cb06c4705a3c7034 (diff)
fix search scopes for cakes controller.
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/cakes_controller_spec.rb37
1 files changed, 25 insertions, 12 deletions
diff --git a/spec/controllers/cakes_controller_spec.rb b/spec/controllers/cakes_controller_spec.rb
index 3d25f2ba..b9a324eb 100644
--- a/spec/controllers/cakes_controller_spec.rb
+++ b/spec/controllers/cakes_controller_spec.rb
@@ -3,49 +3,63 @@ require 'rails_helper'
describe CakesController do
let(:user) { create(:user) }
- before(:each) do
- photo = 'spec/fixtures/images/example.png'
- cake.photos.create(image: photo)
+ before :each do
+ #photo = 'spec/fixtures/images/example.png'
+ #cake.photos.create(image: photo)
end
describe "#index" do
let!(:cakes) { create(:category, slug: "cakes") }
let!(:cookies) { create(:category, slug: "cookies") }
- let!(:cake) { create(:published_cake, name: "cake", category: cakes) }
- let!(:cookie) do
- create(:published_cake, name: "cookie", category: cookies)
- end
-
- let!(:unpublished_cake) do
- create(:cake, name: "unpublished", category: cakes)
- end
it "returns all published cakes" do
+ cake = create(:published_cake, category: cakes)
+ cookie = create(:published_cake, category: cookies)
+ unpublished_cake = create(:cake, category: cakes)
get :index
expect(assigns(:cakes)).to match_array([cake, cookie])
end
it "returns all cakes in the category" do
+ cookie = create(:published_cake, name: "cookie", category: cookies)
get :index, category: cookie.category.slug
expect(assigns(:cakes)).to match_array([cookie])
end
it "returns all cakes matching the search query" do
+ cake = create(:published_cake, name: "cake", category: cakes)
get :index, q: cake.name[0..2]
expect(assigns(:cakes)).to match_array([cake])
end
it "returns all cakes tagged with the tag" do
+ cake = create(:published_cake, name: "cake", category: cakes)
cake.tag_list = "cakes"
cake.save!
get :index, tags: "cakes"
expect(assigns(:cakes)).to match_array([cake])
end
+
+ describe "sorting" do
+ let!(:old_cake) { create(:published_cake, name: 'old', created_at: 2.days.ago) }
+ let!(:new_cake) { create(:published_cake, name: 'new', created_at: 1.day.ago) }
+
+ it 'returns oldest cakes first' do
+ get :index, sort: "oldest"
+ expect(assigns(:cakes).to_a).to eql([ old_cake, new_cake ])
+ end
+
+ it 'returns newest cakes first' do
+ get :index, sort: "newest"
+ expect(assigns(:cakes).to_a).to eql([ new_cake, old_cake ])
+ end
+ end
end
describe "#show" do
let(:cake) { create(:cake, user: user) }
+ let(:photo) { create(:photo, imageable: cake) }
it "loads the cake" do
get :show, id: cake.id
@@ -53,7 +67,6 @@ describe CakesController do
end
it 'loads the selected image' do
- photo = cake.photos.first
get :show, id: cake.id, photo_id: photo.id
expect(assigns(:primary_image)).to eql(photo)
end