Files
spree_digital/spec/models/order_spec.rb
Captain Future e6134722d4 boom
2011-04-17 16:26:36 +02:00

55 lines
1.9 KiB
Ruby

require File.dirname(__FILE__) + '/../spec_helper'
describe Order do
context 'validation' do
it { should have_valid_factory(:order) }
end
context "#add_variant" do
it "should add digital Variants of quantity 1 to an order" do
order = Factory(:order)
order.add_variant variant1 = Factory(:variant, :digital => Factory(:digital))
order.add_variant variant2 = Factory(:variant, :digital => Factory(:digital))
order.add_variant variant3 = Factory(:variant, :digital => Factory(:digital))
order.line_items.first.variant.should == variant1
order.line_items.second.variant.should == variant2
order.line_items.third.variant.should == variant3
end
it "should handle quantity higher than 1 when adding one specific digital Variant" do
order = Factory(:order)
digital_variant = Factory(:variant, :digital => Factory(:digital))
order.add_variant digital_variant, 3
order.line_items.first.quantity.should == 3
order.add_variant digital_variant, 2
order.line_items.first.quantity.should == 5
end
end
context "line_item analysis" do
it "should understand that all products are digital" do
order = Factory(:order)
3.times do
order.add_variant Factory(:variant, :digital => Factory(:digital))
end
order.digital?.should be_true
order.add_variant Factory(:variant, :digital => Factory(:digital)), 4
order.digital?.should be_true
end
it "should understand that not all products are digital" do
order = Factory(:order)
3.times do
order.add_variant Factory(:variant, :digital => Factory(:digital))
end
order.add_variant Factory(:variant) # this is the analog product
order.digital?.should be_false
order.add_variant Factory(:variant, :digital => Factory(:digital)), 4
order.digital?.should be_false
end
end
end