diff options
author | Alessio Rocco <alessio.rocco.lt@gmail.com> | 2021-02-05 13:47:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-05 13:47:14 +0100 |
commit | c2a8f6f37db7c099e971a2c5aec216df0e942b3f (patch) | |
tree | 965c42f547dfc0a5e2a3b46d83cb57cea159625a | |
parent | 3a3657b79bd5d98025136da4b39751e6a43b7b9f (diff) | |
parent | c6807954d62efe9597a6cda03066f820123f0c6d (diff) |
Merge pull request #188 from solidusio-contrib/fix-skip-count
Fix skip counters to handle skip limits
-rw-r--r-- | app/models/solidus_subscriptions/subscription.rb | 4 | ||||
-rw-r--r-- | spec/models/solidus_subscriptions/subscription_spec.rb | 15 |
2 files changed, 6 insertions, 13 deletions
diff --git a/app/models/solidus_subscriptions/subscription.rb b/app/models/solidus_subscriptions/subscription.rb index 15424d8..e78b516 100644 --- a/app/models/solidus_subscriptions/subscription.rb +++ b/app/models/solidus_subscriptions/subscription.rb @@ -162,6 +162,10 @@ module SolidusSubscriptions return if errors.any? end + increment(:skip_count) + increment(:successive_skip_count) + save! + advance_actionable_date.tap do events.create!(event_type: 'subscription_skipped') end diff --git a/spec/models/solidus_subscriptions/subscription_spec.rb b/spec/models/solidus_subscriptions/subscription_spec.rb index f305580..2267dbf 100644 --- a/spec/models/solidus_subscriptions/subscription_spec.rb +++ b/spec/models/solidus_subscriptions/subscription_spec.rb @@ -137,7 +137,7 @@ RSpec.describe SolidusSubscriptions::Subscription, type: :model do let(:total_skips) { 0 } let(:successive_skips) { 0 } - let(:expected_date) { 1.month.from_now.to_date } + let(:expected_date) { 2.months.from_now.to_date } let(:subscription) do create( @@ -148,18 +148,7 @@ RSpec.describe SolidusSubscriptions::Subscription, type: :model do ) end - around do |e| - successive_skip_limit = SolidusSubscriptions.configuration.maximum_successive_skips - total_skip_limit = SolidusSubscriptions.configuration.maximum_total_skips - - SolidusSubscriptions.configuration.maximum_successive_skips = 1 - SolidusSubscriptions.configuration.maximum_total_skips = 1 - - Timecop.freeze { e.run } - - SolidusSubscriptions.configuration.maximum_successive_skips = successive_skip_limit - SolidusSubscriptions.configuration.maximum_total_skips = total_skip_limit - end + before { stub_config(maximum_total_skips: 1) } context 'when the successive skips have been exceeded' do let(:successive_skips) { 1 } |