diff options
author | Nicolò€ Rebughini <nicolo.rebughini@gmail.com> | 2020-11-19 10:44:30 +0100 |
---|---|---|
committer | Nicolò€ Rebughini <nicolo.rebughini@gmail.com> | 2020-11-19 11:08:25 +0100 |
commit | 8edfa40d0cd7eb7b71fb652357706262f133e858 (patch) | |
tree | 4c24b81b38419a2bd514bca96d8eb0f542665610 | |
parent | b3dc679b7056931397820ad333686ef151656ba4 (diff) |
Associate first order to subscriptionnirebu/associate-first-order-to-subscription
As introduced by an earlier PR, orders were linked back to
subscriptions, however that missed to associate the first order because
that one is generated in another service object. This adds the
aforementioned association also on the first order.
-rw-r--r-- | app/services/solidus_subscriptions/subscription_generator.rb | 5 | ||||
-rw-r--r-- | spec/services/solidus_subscriptions/subscription_generator_spec.rb | 8 |
2 files changed, 12 insertions, 1 deletions
diff --git a/app/services/solidus_subscriptions/subscription_generator.rb b/app/services/solidus_subscriptions/subscription_generator.rb index 8153912..9f61935 100644 --- a/app/services/solidus_subscriptions/subscription_generator.rb +++ b/app/services/solidus_subscriptions/subscription_generator.rb @@ -32,9 +32,12 @@ module SolidusSubscriptions **configuration.to_h } - Subscription.create!(subscription_attributes) do |sub| + subscription = Subscription.create!(subscription_attributes) do |sub| sub.actionable_date = sub.next_actionable_date end + order.update!(subscription: subscription) + + subscription end # Group a collection of line items by common subscription configuration diff --git a/spec/services/solidus_subscriptions/subscription_generator_spec.rb b/spec/services/solidus_subscriptions/subscription_generator_spec.rb index b7d73b8..0640c26 100644 --- a/spec/services/solidus_subscriptions/subscription_generator_spec.rb +++ b/spec/services/solidus_subscriptions/subscription_generator_spec.rb @@ -44,6 +44,14 @@ RSpec.describe SolidusSubscriptions::SubscriptionGenerator do payment_source: payment_source, ) end + + it 'associates the order to the subscription' do + subscription_line_item = build(:subscription_line_item) + + subscription = described_class.activate([subscription_line_item]) + + expect(subscription_line_item.order.subscription).to eq(subscription) + end end describe '.group' do |