Sha256: 57d410f85d3154d63923699238e87f0f2b3d16268a76ac485ce16e88072912dd

Contents?: true

Size: 1.36 KB

Versions: 6

Compression:

Stored size: 1.36 KB

Contents

require 'rails_helper'

RSpec.describe Spree::ReturnItem::EligibilityValidator::TimeSincePurchase, type: :model do
  let(:inventory_unit) { create(:inventory_unit, shipment: create(:shipped_order).shipments.first) }
  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 I18n.t('spree.return_item_time_period_ineligible')
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
solidus_core-2.5.2 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-2.5.1 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-2.5.0 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-2.5.0.rc1 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-2.5.0.beta2 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb
solidus_core-2.5.0.beta1 spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb