diff options
author | Alessandro Desantis <desa.alessandro@gmail.com> | 2020-11-23 16:09:29 +0100 |
---|---|---|
committer | Alessandro Desantis <desa.alessandro@gmail.com> | 2020-11-23 16:09:29 +0100 |
commit | 79d099e214422a34c85bcbba92e0027a3b77ff57 (patch) | |
tree | 3421fa4b0605ec5a719f26ca6b44eda560ffdc97 | |
parent | 8bf81a8b92d27dd7fb3948437ef023c83fcde77e (diff) |
Fix legacy unsubscribable subscriptions not being processed
If a customer subscribed to an item that is now unsubscribable, we don't
want to stop processing their subscription all of a sudden. Admins should
be able to decide whether they want to grandfather the customers out of
the subscription or keep them on the subscription indefinitely, while
preventing new customers from subscribing.
3 files changed, 0 insertions, 31 deletions
diff --git a/app/services/solidus_subscriptions/line_item_builder.rb b/app/services/solidus_subscriptions/line_item_builder.rb index d258787..c9aedb9 100644 --- a/app/services/solidus_subscriptions/line_item_builder.rb +++ b/app/services/solidus_subscriptions/line_item_builder.rb @@ -24,7 +24,6 @@ module SolidusSubscriptions line_items = subscription_line_items.map do |subscription_line_item| variant = subscription_line_item.subscribable - raise UnsubscribableError, variant unless variant.subscribable? next unless variant.can_supply?(subscription_line_item.quantity) ::Spree::LineItem.new(variant: variant, quantity: subscription_line_item.quantity) diff --git a/app/services/solidus_subscriptions/unsubscribable_error.rb b/app/services/solidus_subscriptions/unsubscribable_error.rb deleted file mode 100644 index b7e431f..0000000 --- a/app/services/solidus_subscriptions/unsubscribable_error.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# This error should be raised if a user attempts to subscribe to a item which -# is not subscribable -module SolidusSubscriptions - class UnsubscribableError < StandardError - def initialize(subscribable) - @subscribable = subscribable - super - end - - def to_s - <<-MSG.squish - #{@subscribable.class} with id: #{@subscribable.id} cannot be - subscribed to. - MSG - end - end -end diff --git a/spec/services/solidus_subscriptions/line_item_builder_spec.rb b/spec/services/solidus_subscriptions/line_item_builder_spec.rb index 96ca027..d1e041c 100644 --- a/spec/services/solidus_subscriptions/line_item_builder_spec.rb +++ b/spec/services/solidus_subscriptions/line_item_builder_spec.rb @@ -24,17 +24,6 @@ RSpec.describe SolidusSubscriptions::LineItemBuilder do expect(subject.first).to have_attributes expected_attributes end - context 'the variant is not subscribable' do - let!(:variant) { create(:variant) } - - it 'raises an unsubscribable error' do - expect { subject }.to raise_error( - SolidusSubscriptions::UnsubscribableError, - /cannot be subscribed to/ - ) - end - end - context 'the variant is out of stock' do before { create :stock_location, backorderable_default: false } |