summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolò€ Rebughini <nicolo.rebughini@gmail.com>2020-11-19 10:44:30 +0100
committerNicolò€ Rebughini <nicolo.rebughini@gmail.com>2020-11-19 11:08:25 +0100
commit8edfa40d0cd7eb7b71fb652357706262f133e858 (patch)
tree4c24b81b38419a2bd514bca96d8eb0f542665610
parentb3dc679b7056931397820ad333686ef151656ba4 (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.rb5
-rw-r--r--spec/services/solidus_subscriptions/subscription_generator_spec.rb8
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