diff --git a/app/controllers/categories_controller.rb b/app/controllers/categories_controller.rb index a0a9e66..ec46137 100644 --- a/app/controllers/categories_controller.rb +++ b/app/controllers/categories_controller.rb @@ -2,7 +2,7 @@ class CategoriesController < ApplicationController # GET /categories # GET /categories.xml def index - @categories = Category.order('sort ASC').paginate page: params[:page], per_page: 4 + @categories = Category.order('sort ASC').page(params[:page]).per(4) @photos = Photo.featured.limit(2).order('RANDOM()') diff --git a/app/controllers/photos_controller.rb b/app/controllers/photos_controller.rb index 362dec7..f4c2609 100644 --- a/app/controllers/photos_controller.rb +++ b/app/controllers/photos_controller.rb @@ -28,13 +28,13 @@ class PhotosController < ApplicationController def for_category(category_id) @category = Category.find_by_id(category_id) @photos = @category.photos.enabled.order { taken_at.desc } - .paginate(page: params[:page], per_page: 11) + .page(params[:page]) @page_title = @category.name end def all @photos = Photo.enabled.order { taken_at.desc } - .paginate(page: params[:page], per_page: 11) + .page(params[:page]) @page_title = 'All Photos' end end diff --git a/app/views/categories/index.html.erb b/app/views/categories/index.html.erb index d9bec3c..901350a 100644 --- a/app/views/categories/index.html.erb +++ b/app/views/categories/index.html.erb @@ -2,12 +2,12 @@ <% content_for :navigation do %> diff --git a/app/views/photos/index.html.erb b/app/views/photos/index.html.erb index 7964fbd..0688bdb 100644 --- a/app/views/photos/index.html.erb +++ b/app/views/photos/index.html.erb @@ -2,12 +2,12 @@ <% content_for :navigation do %> diff --git a/spec/factories/categories.rb b/spec/factories/categories.rb index bfc7ba6..8ce0b4e 100644 --- a/spec/factories/categories.rb +++ b/spec/factories/categories.rb @@ -2,6 +2,6 @@ FactoryGirl.define do factory :category do - name 'Test Category' + sequence(:name) { |n| "Test Category #{n}" } end end diff --git a/spec/features/visitor_navigates_site_spec.rb b/spec/features/visitor_navigates_site_spec.rb index f7b73b8..e074523 100644 --- a/spec/features/visitor_navigates_site_spec.rb +++ b/spec/features/visitor_navigates_site_spec.rb @@ -1,19 +1,21 @@ require 'spec_helper' feature 'visitor navigates site' do - let!(:category) { create(:category) } - let!(:photo) { create(:photo, featured: true, categories: [category]) } - it 'shows the featured image on the home page' do + category = create(:category) + photo = create(:photo, featured: true, categories: [category]) + visit root_path expect(page).to have_selector("a[data-id='#{photo.id}']") end it 'increments the view counter when an image is displayed', js: true do + category = create(:category) + photo = create(:photo, featured: true, categories: [category]) + visit root_path selector = "a[data-id='#{photo.id}']" - expect(page).to have_selector(selector) page.find(selector).click @@ -26,14 +28,22 @@ feature 'visitor navigates site' do end it 'shows the categories' do - visit root_path + categories = create_list(:category, 5) + visit root_path click_link 'portfolio' - expect(page).to have_link(category.name.downcase) + expect(page).to have_link(categories.first.name.downcase) + + click_link '→' + + expect(page).to have_link(categories.last.name.downcase) end it 'shows the photos for the category' do + category = create(:category) + photo = create(:photo, featured: true, categories: [category]) + visit categories_path click_link category.name.downcase @@ -41,4 +51,16 @@ feature 'visitor navigates site' do selector = "a[data-id='#{photo.id}']" expect(page).to have_selector(selector) end + + it 'shows the second page of photos' do + category = create(:category) + photos = create_list(:photo, 12, featured: true, categories: [category]) + + visit url_for([category, :photos]) + + click_link '→' + + selector = "a[data-id='#{photos.last.id}']" + expect(page).to have_selector(selector) + end end