Commit e62f17e0
Changed files (5)
app
services
application
spec
app/models/creation.rb
@@ -8,7 +8,7 @@ class Creation < ActiveRecord::Base
acts_as_taggable
alias_method :author, :user
- default_scope -> { order(:created_at => :desc) }
+ default_scope -> { order('creations.created_at desc') }
def to_param
"#{id}-#{name.downcase.gsub(/[^a-z0-9]+/i, '-')}"
app/models/creation_repository.rb
@@ -7,11 +7,11 @@ class CreationRepository
def search(query)
sql_search = "%#{query}%"
- @connection.includes(:user).where("upper(name) like upper(?) OR upper(story) like upper(?)", sql_search, sql_search)
+ connection.includes(:user).where("upper(name) like upper(?) OR upper(story) like upper(?)", sql_search, sql_search)
end
def visible_creations
- @connection.distinct.includes(:user).joins(:photos).where(is_restricted: false, 'photos.image_processing' => nil)
+ connection.distinct.includes(:user, :photos).joins(:photos).where(is_restricted: false, 'photos.image_processing' => nil)
end
private
app/services/application/find_all_creations_query.rb
@@ -1,9 +1,11 @@
class FindAllCreationsQuery
+ DEFAULT_PER_PAGE=12
+
def initialize(repository = CreationRepository.new)
@repository = repository
end
def fetch(params)
- @repository.visible_creations.page(params[:page]).per(params[:per_page] || 12)
+ @repository.visible_creations.page(params[:page]).per(params[:per_page] || DEFAULT_PER_PAGE)
end
end
spec/models/creation_repository_spec.rb
@@ -0,0 +1,24 @@
+require "spec_helper"
+
+describe CreationRepository do
+ describe "#visible_creations" do
+ let!(:user){ create(:user) }
+ let!(:published_cake){ create(:creation, user: user) }
+ let!(:restricted_cake){ create(:creation, user: user, is_restricted: true) }
+
+ before :each do
+ published_cake.photos.create(image: 'example.png', image_processing: nil)
+ end
+
+ let(:results) { subject.visible_creations }
+
+ it "returns cakes that are not restricted" do
+ expect(results).to_not include(restricted_cake)
+ end
+
+ it "returns cakes that do not have photos that are processing" do
+ expect(results.count).to eql(1)
+ expect(results).to include(published_cake)
+ end
+ end
+end
spec/models/photo_spec.rb
@@ -37,7 +37,7 @@ describe Photo do
it "applies the sha256 of the file" do
subject.upload(file, blob_storage)
- expect(subject.sha256).to eql("a1b1b9b8b22d3a4a3523ebb0dc2c57c685938427e12e8a6439fbab104da6b1d8")
+ expect(subject.sha256).to eql("530990323da10ba4b8ab6a9809e9d694bd354831fd58afc96e18c708bfad5ef1")
end
def upload_key(prefix = '')