jam-cloud/ruby/spec/jam_ruby/models/affiliate_distribution_spec.rb

34 lines
2.1 KiB
Ruby

require 'spec_helper'
describe AffiliateDistribution do
let(:affiliate_partner){ FactoryGirl.create(:affiliate_partner) }
let(:affiliate_distribution1){ FactoryGirl.create(:affiliate_distribution, created_at: DateTime.new(2015, 1, 31), product_type: 'Subscription', product_code: 'jamsubsilver', affiliate_referral: affiliate_partner) }
let(:affiliate_distribution2){ FactoryGirl.create(:affiliate_distribution, created_at: DateTime.new(2015, 2, 1), product_type: 'Subscription', product_code: 'jamsubsilver', affiliate_referral: affiliate_partner) }
let(:affiliate_distribution3){ FactoryGirl.create(:affiliate_distribution, created_at: DateTime.new(2015, 2, 2), product_type: 'Subscription', product_code: 'jamsubgold', affiliate_referral: affiliate_partner) }
let(:affiliate_distribution4){ FactoryGirl.create(:affiliate_distribution, created_at: DateTime.new(2015, 2, 3), product_type: 'Subscription', product_code: 'jamsubgold', affiliate_referral: affiliate_partner) }
let(:affiliate_distribution5){ FactoryGirl.create(:affiliate_distribution, created_at: DateTime.new(2015, 2, 7), product_type: 'Subscription', product_code: 'jamsubplatinum', affiliate_referral: affiliate_partner) }
let(:affiliate_distribution6){ FactoryGirl.create(:affiliate_distribution, created_at: DateTime.new(2015, 3, 1), product_type: 'Subscription', product_code: 'jamsubsilver', affiliate_referral: affiliate_partner) }
it "gives subscription plans counts for a partner between start and end dates" do
affiliate_distribution1.reload
affiliate_distribution2.reload
affiliate_distribution3.reload
affiliate_distribution4.reload
affiliate_distribution5.reload
affiliate_distribution6.reload
start_date = Date.new(2015, 2, 1)
end_date = Date.new(2015, 2, 7)
expect(AffiliateDistribution.count).to eq(6)
expect(AffiliateDistribution.subscription_plans_count(affiliate_partner.id, start_date, end_date)).to eq(
[
{ plan: 'jamsubsilver', count: 1 },
{ plan: 'jamsubgold', count: 2 },
{ plan: 'jamsubplatinum', count: 1 }
]
)
end
end