Sha256: bee6d8b39ffcb8e2357dd4dc42562d2181e69b44c17b215430f77d2a29c8fcd3

Contents?: true

Size: 1.79 KB

Versions: 9

Compression:

Stored size: 1.79 KB

Contents

require 'test_helper'

class CreditTest < ActiveSupport::TestCase
  should_validate_numericality_of :amount
  should_validate_presence_of :description
  context "order instance with discounts" do
    setup do
      @order = Factory(:order)
      @credit = Factory(:credit, :amount => 2.00, :order => @order)
      @order.save
    end

    should "set positive credit_total" do
      assert_equal(2, @order.credit_total)
    end

    should "not set negative charge_total" do
      assert_equal(0, @order.charge_total.to_f)
    end

    should "set negative adjustment_total" do
      assert_equal("-2.0", @order.adjustment_total.to_s)
    end

    should "decrase total" do
      assert_equal(@order.item_total - 2.00, @order.total)
    end

    context "when adding another discount" do
      setup do
        Factory(:credit, :amount => 1.00, :order => @order)
        @order.save
      end

      should_change("@order.total", :by => BigDecimal("-1.00")) { @order.total }
      should_change("@order.credit_total", :by => BigDecimal("1.00")) { @order.credit_total }
      should_not_change("@order.item_total") { @order.item_total }
    end

    context "when destroying a credit" do
      setup do
        @order.credits.destroy_all
        @order.save
      end
      should_change("@order.total", :by => BigDecimal("2.00")) { @order.total }
      should_change("@order.credit_total", :by => BigDecimal("-2.00")) { @order.credit_total }
      should_not_change("@order.item_total") { @order.item_total }
    end
  end
  
  context "Credit#calculate_adjustment" do
    setup { @coupon_credit = Factory(:coupon_credit) }
    context "with empty line items" do
      setup { @coupon_credit.order.line_items.clear }
      should "return nil" do
        assert_equal 0, @coupon_credit.calculate_adjustment
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
spree-0.11.4 test/unit/credit_test.rb
spree-0.11.3 test/unit/credit_test.rb
spree-0.11.2 test/unit/credit_test.rb
spree-0.11.1 test/unit/credit_test.rb
spree-0.11.0 test/unit/credit_test.rb
spree-0.10.2 test/unit/credit_test.rb
spree-0.10.1 test/unit/credit_test.rb
spree-0.10.0 test/unit/credit_test.rb
spree-0.10.0.beta test/unit/credit_test.rb