File tree 2 files changed +26
-3
lines changed
2 files changed +26
-3
lines changed Original file line number Diff line number Diff line change @@ -121,7 +121,7 @@ def recalculate_adjustments(persist:)
121
121
# http://www.hmrc.gov.uk/vat/managing/charging/discounts-etc.htm#1
122
122
# It also fits the criteria for sales tax as outlined here:
123
123
# http://www.boe.ca.gov/formspubs/pub113/
124
- update_promotions
124
+ update_promotions ( persist : )
125
125
update_taxes
126
126
update_item_totals ( persist :)
127
127
end
@@ -203,8 +203,12 @@ def log_state_change(name)
203
203
end
204
204
end
205
205
206
- def update_promotions
207
- Spree ::Config . promotions . order_adjuster_class . new ( order ) . call
206
+ def update_promotions ( persist :)
207
+ if persist
208
+ Spree ::Config . promotions . order_adjuster_class
209
+ else
210
+ InMemoryOrderAdjuster
211
+ end . new ( order ) . call
208
212
end
209
213
210
214
def update_taxes
@@ -247,5 +251,13 @@ def update_item_totals(persist:)
247
251
end
248
252
end
249
253
end
254
+
255
+ class InMemoryOrderAdjuster
256
+ def initialize ( order )
257
+ end
258
+
259
+ def call
260
+ end
261
+ end
250
262
end
251
263
end
Original file line number Diff line number Diff line change @@ -136,6 +136,17 @@ module Spree
136
136
expect ( adjuster ) . to receive ( :call )
137
137
order . recalculate
138
138
end
139
+
140
+ context "when recalculating the order in memory" do
141
+ it "raises an error" do
142
+ order_adjuster = double
143
+ allow ( order_adjuster ) . to receive ( :call ) { raise NotImplementedError }
144
+ allow ( Spree ::InMemoryOrderUpdater ::InMemoryOrderAdjuster ) . to receive ( :new ) . and_return ( order_adjuster )
145
+
146
+ expect { described_class . new ( order ) . recalculate ( persist : false ) }
147
+ . to raise_error ( NotImplementedError )
148
+ end
149
+ end
139
150
end
140
151
141
152
describe 'tax recalculation' do
You can’t perform that action at this time.
0 commit comments