Sha256: f20e32a6dbb0aa73a0f18051e3e6fd9507d3177e2f8093c8438762a9854b22b9

Contents?: true

Size: 1.33 KB

Versions: 32

Compression:

Stored size: 1.33 KB

Contents

require 'spec_helper'

describe Spree::ReturnItem::EligibilityValidator::TimeSincePurchase, :type => :model do
  let(:inventory_unit) { create(:inventory_unit, order: create(:shipped_order)) }
  let(:return_item)    { create(:return_item, inventory_unit: inventory_unit) }
  let(:validator)      { Spree::ReturnItem::EligibilityValidator::TimeSincePurchase.new(return_item) }

  describe "#eligible_for_return?" do
    subject { validator.eligible_for_return? }

    context "it is within the return timeframe" do
      it "returns true" do
        completed_at = return_item.inventory_unit.order.completed_at - (Spree::Config[:return_eligibility_number_of_days].days / 2)
        return_item.inventory_unit.order.update_attributes(completed_at: completed_at)
        expect(subject).to be true
      end
    end

    context "it is past the return timeframe" do
      before do
        completed_at = return_item.inventory_unit.order.completed_at - Spree::Config[:return_eligibility_number_of_days].days - 1.day
        return_item.inventory_unit.order.update_attributes(completed_at: completed_at)
      end

      it "returns false" do
        expect(subject).to be false
      end

      it "sets an error" do
        subject
        expect(validator.errors[:number_of_days]).to eq Spree.t('return_item_time_period_ineligible')
      end
    end
  end
end

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
solidus_core-1.2.3 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-1.1.4 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-1.0.7 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.5 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.4 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.3 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.2 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.0.10 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.1 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.0 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.0.rc4 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.0.9 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.0.rc3 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.0.rc2 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.1.0.rc1 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-1.0.6 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.0.8 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-1.2.2 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
spree_core-3.0.7 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-1.2.1 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb