From 26d1c265de82811b5a958c53f6b392f6f7caad8e Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 13 Aug 2013 18:28:58 -0300 Subject: [PATCH] [postgres-tests] Fixing features products block offset logic --- app/models/featured_products_block.rb | 5 +++-- test/unit/featured_products_block_test.rb | 6 +++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/models/featured_products_block.rb b/app/models/featured_products_block.rb index c2a6bda..50fad26 100644 --- a/app/models/featured_products_block.rb +++ b/app/models/featured_products_block.rb @@ -7,8 +7,9 @@ class FeaturedProductsBlock < Block before_save do |block| if block.owner.kind_of?(Environment) && block.product_ids.blank? - seed = block.owner.products.count - block.product_ids = block.owner.highlighted_products_with_image(:offset => (rand(seed) % (seed - block.groups_of * 3)), :limit => block.groups_of * 3).map(&:id) + total = block.owner.products.count + offset = rand([(total - block.groups_of * 3) + 1, 1].max) + block.product_ids = block.owner.highlighted_products_with_image(:offset => offset, :limit => block.groups_of * 3).map(&:id) end block.groups_of = block.groups_of.to_i end diff --git a/test/unit/featured_products_block_test.rb b/test/unit/featured_products_block_test.rb index 8aef8bf..9007633 100644 --- a/test/unit/featured_products_block_test.rb +++ b/test/unit/featured_products_block_test.rb @@ -129,7 +129,11 @@ class FeaturedProductsBlockTest < ActiveSupport::TestCase }) @environment.boxes.first.blocks<< block - assert_equal products, block.products_for_selection + products_for_selection = block.products_for_selection + + products.each do |product| + assert_includes products_for_selection, product + end end end -- libgit2 0.21.2