diff --git a/app/models/product.rb b/app/models/product.rb index 6b537b5..9d74d19 100644 --- a/app/models/product.rb +++ b/app/models/product.rb @@ -196,6 +196,7 @@ class Product < ActiveRecord::Base end def price_description_percentage + return 0 if price.blank? || price.zero? total_production_cost * 100 / price end diff --git a/test/unit/product_test.rb b/test/unit/product_test.rb index e7f6c5b..e633489 100644 --- a/test/unit/product_test.rb +++ b/test/unit/product_test.rb @@ -510,4 +510,26 @@ class ProductTest < Test::Unit::TestCase assert_equal "50.00", product.formatted_value(:inputs_cost) end + should 'return 0 on price_description_percentage by default' do + assert_equal 0, Product.new.price_description_percentage + end + + should 'return 0 on price_description_percentage if price is 0' do + product = fast_create(Product, :price => 0) + + assert_equal 0, product.price_description_percentage + end + + should 'return 0 on price_description_percentage if price is not defined' do + product = fast_create(Product) + + assert_equal 0, product.price_description_percentage + end + + should 'return 0 on price_description_percentage if total_production_cost is 0' do + product = fast_create(Product, :price => 50) + + assert_equal 0, product.price_description_percentage + end + end -- libgit2 0.21.2