summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Desantis <desa.alessandro@gmail.com>2020-11-23 16:09:29 +0100
committerAlessandro Desantis <desa.alessandro@gmail.com>2020-11-23 16:09:29 +0100
commit79d099e214422a34c85bcbba92e0027a3b77ff57 (patch)
tree3421fa4b0605ec5a719f26ca6b44eda560ffdc97
parent8bf81a8b92d27dd7fb3948437ef023c83fcde77e (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.
-rw-r--r--app/services/solidus_subscriptions/line_item_builder.rb1
-rw-r--r--app/services/solidus_subscriptions/unsubscribable_error.rb19
-rw-r--r--spec/services/solidus_subscriptions/line_item_builder_spec.rb11
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 }