require 'spec_helper' describe AffiliatePayment do let(:partner) { FactoryGirl.create(:affiliate_partner) } let(:user_partner) { FactoryGirl.create(:user, affiliate_partner: partner) } it "succeeds with no data" do results, nex = AffiliatePayment.index(user_partner, {}) results.length.should eq(0) end it "sorts month and quarters correctly" do monthly1 = FactoryGirl.create(:affiliate_monthly_payment, affiliate_partner: partner, closed: true, due_amount_in_cents: 10, month: 1, year: 2015) monthly2 = FactoryGirl.create(:affiliate_monthly_payment, affiliate_partner: partner, closed: true, due_amount_in_cents: 20, month: 2, year: 2015) monthly3 = FactoryGirl.create(:affiliate_monthly_payment, affiliate_partner: partner, closed: true, due_amount_in_cents: 30, month: 3, year: 2015) monthly4 = FactoryGirl.create(:affiliate_monthly_payment, affiliate_partner: partner, closed: true, due_amount_in_cents: 40, month: 1, year: 2016) quarterly = FactoryGirl.create(:affiliate_quarterly_payment, affiliate_partner: partner, closed: true, paid:true, due_amount_in_cents: 50, quarter: 0, year: 2015) results, nex = AffiliatePayment.index(user_partner, {}) results.length.should eq(4) result1 = results[0] result2 = results[1] result3 = results[2] result4 = results[3] #result5 = results[4] result4.payment_type.should eq('monthly') result4.due_amount_in_cents.should eq(10) result3.payment_type.should eq('monthly') result3.due_amount_in_cents.should eq(20) result2.payment_type.should eq('monthly') result2.due_amount_in_cents.should eq(30) result1.payment_type.should eq('monthly') result1.due_amount_in_cents.should eq(40) #NOTE: removeing quarter payments from AffiliatePayment.index #"affiliate earnings" in client now only lists monthly payments expect(results.map(&:payment_type)).not_to include("quarterly") end end