summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessio Rocco <alessio.rocco.lt@gmail.com>2021-02-05 13:47:14 +0100
committerGitHub <noreply@github.com>2021-02-05 13:47:14 +0100
commitc2a8f6f37db7c099e971a2c5aec216df0e942b3f (patch)
tree965c42f547dfc0a5e2a3b46d83cb57cea159625a
parent3a3657b79bd5d98025136da4b39751e6a43b7b9f (diff)
parentc6807954d62efe9597a6cda03066f820123f0c6d (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.rb4
-rw-r--r--spec/models/solidus_subscriptions/subscription_spec.rb15
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 }