Skip to content

Commit

Permalink
Merge pull request #202 from solidusio-contrib/mr/cleanup-duplicated-…
Browse files Browse the repository at this point in the history
…fields-on-order-finalize

Cleanup the duplicated fields on subscription creation
  • Loading branch information
aldesantis authored Feb 26, 2021
2 parents 5d965b6 + 11fa55f commit 4d4bb04
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
11 changes: 11 additions & 0 deletions lib/solidus_subscriptions/subscription_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ def activate(subscription_line_items)

Subscription.create!(subscription_attributes) do |sub|
sub.actionable_date = sub.next_actionable_date
end.tap do |_subscription|
cleanup_subscription_line_items(subscription_line_items)
end
end

Expand All @@ -55,6 +57,15 @@ def group(subscription_line_items)

private

def cleanup_subscription_line_items(subscription_line_items)
ids = subscription_line_items.pluck :id
SolidusSubscriptions::LineItem.where(id: ids).update_all(
interval_length: nil,
interval_units: nil,
end_date: nil
)
end

def subscription_configuration(subscription_line_item)
SubscriptionConfiguration.new(
subscription_line_item.interval_length,
Expand Down
13 changes: 13 additions & 0 deletions spec/lib/solidus_subscriptions/subscription_generator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,19 @@
payment_source: payment_source,
)
end

it 'cleanups the subscription line items fields duplicated on the subscription' do
attrs = { interval_length: 2, interval_units: :week, end_date: Time.zone.tomorrow }
subscription_line_item = create(:subscription_line_item, attrs)

described_class.activate([subscription_line_item])

expect(subscription_line_item.reload).to have_attributes(
interval_length: nil,
interval_units: nil,
end_date: nil
)
end
end

describe '.group' do
Expand Down

0 comments on commit 4d4bb04

Please sign in to comment.