require 'spec_helper' describe Sale do describe "check_integrity" do let(:user) {FactoryGirl.create(:user)} let(:jam_track) {FactoryGirl.create(:jam_track)} it "empty" do check_integrity = Sale.check_integrity check_integrity.length.should eq(1) r = check_integrity[0] r.total.to_i.should eq(0) r.not_known.to_i.should eq(0) r.succeeded.to_i.should eq(0) r.failed.to_i.should eq(0) r.refunded.to_i.should eq(0) r.voided.to_i.should eq(0) end it "one unknown sale" do sale = Sale.create(user) shopping_cart = ShoppingCart.create(user, jam_track) SaleLineItem.create_from_shopping_cart(sale, shopping_cart, 'some_recurly_uuid') check_integrity = Sale.check_integrity r = check_integrity[0] r.total.to_i.should eq(1) r.not_known.to_i.should eq(1) r.succeeded.to_i.should eq(0) r.failed.to_i.should eq(0) r.refunded.to_i.should eq(0) r.voided.to_i.should eq(0) end it "one succeeded sale" do sale = Sale.create(user) shopping_cart = ShoppingCart.create(user, jam_track) SaleLineItem.create_from_shopping_cart(sale, shopping_cart, 'some_recurly_uuid') FactoryGirl.create(:recurly_transaction_web_hook, subscription_id: 'some_recurly_uuid') check_integrity = Sale.check_integrity r = check_integrity[0] r.total.to_i.should eq(1) r.not_known.to_i.should eq(0) r.succeeded.to_i.should eq(1) r.failed.to_i.should eq(0) r.refunded.to_i.should eq(0) r.voided.to_i.should eq(0) end it "one failed sale" do sale = Sale.create(user) shopping_cart = ShoppingCart.create(user, jam_track) SaleLineItem.create_from_shopping_cart(sale, shopping_cart, 'some_recurly_uuid') FactoryGirl.create(:recurly_transaction_web_hook_failed, subscription_id: 'some_recurly_uuid') check_integrity = Sale.check_integrity r = check_integrity[0] r.total.to_i.should eq(1) r.not_known.to_i.should eq(0) r.succeeded.to_i.should eq(0) r.failed.to_i.should eq(1) r.refunded.to_i.should eq(0) r.voided.to_i.should eq(0) end end end