Sha256: 7627dfd2a51d71320d9906ae91d87a0094712f0f4060de03c9da7aee6c3d751a

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

require 'spec_helper'

module Susply
  describe CloseSubscription do
    let(:owner_class) { Susply.subscription_owner_class.constantize } 
    let(:time) {Time.zone.today}

    context "when owner has an active subscription" do
      it "closes the active subscription when present" do
        owner = owner_class.create()
        plan = create(:susply_plan)
        subscription = create(:susply_subscription, :active, owner: owner)

        expect(owner.has_active_subscription?).to be true
        Susply::CloseSubscription.call(owner)
        subscription.reload

        expect(subscription).not_to be_active
        expect(owner.has_active_subscription?).to be false
      end

      it "creates a plan_close prorate payment" do
        owner = owner_class.create()
        plan = create(:susply_plan, interval: 'monthly', price: 100)
        subscription = create(:susply_subscription, :active,owner: owner,
                              current_period_start: time - 15.days)

        Susply::CloseSubscription.call(owner)

        payment = owner.payments.last
        expect(payment.generated_type).to eq 'plan_close'
        expect(owner.has_active_subscription?).to be false
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
susply-1.0.0 spec/services/susply/close_subscription_spec.rb
susply-0.0.2 spec/services/susply/close_subscription_spec.rb
susply-0.0.1 spec/services/susply/close_subscription_spec.rb