Commit Graph

282 Commits

Author SHA1 Message Date
cyrillefr
7812d5f58a Replace set_methods in order model 2025-04-24 09:29:40 +02:00
Gaetan Craig-Riou
223faa5569 Move #recreate_all_fees! spec to HandleFeesService
Spree::Order just delegate Orders::HandleFeesService so there is no
point testing fees in the order spec
2025-04-01 13:46:34 +11:00
Gaetan Craig-Riou
11e08dcc26 Revert "Update line items enterprise fee instead of deleting and recreating " 2025-03-19 09:40:02 +11:00
Gaetan Craig-Riou
12a54dd8f0 Move #recreate_all_fees! spec to HandleFeesService
Spree::Order just delegate Orders::HandleFeesService so there is no
point testing fees in the order spec
2025-02-19 15:13:35 +11:00
Filipe
5d360730c7 Merge pull request #13023 from rioug/12907-fix-checkout-shipping-fee
[Checkout] Shipping fees update, remove order callback
2025-01-23 18:50:31 -06:00
Maikel Linke
917e0ff01a Remove unnecessary storage of currency 2025-01-21 20:11:05 +01:00
Gaetan Craig-Riou
d7ae91c23e Per review, specify the actual expected value 2025-01-20 16:21:19 +11:00
Gaetan Craig-Riou
17e7f7d26d Small linting fix 2025-01-20 16:16:00 +11:00
Gaetan Craig-Riou
c71ae35685 Fix payment_total calculation
For payment that complete during the checkout (Paypal, Stripe) the
amount was recorded twice against `order.payment_total`. This is because
the `payment_total` gets updated in an afer_save Payment callback when a
payment is completed, and then once more when we process payment in
`Spree::Order#process_each_payment`.
This is an existing  issue on master, but it was hidden by the
`update_shipping_fees!` callback, it trigerred an update of the order's
total, which then updated `order.payment_total` with the correct value.
Now that we removed the callback, the bug showed up.

Note, I updated the stripe specs for consistency even though they are
currently disabled.
2025-01-20 16:07:32 +11:00
Gaetan Craig-Riou
f9bd720341 Add spec for #update_shipping_fees!
And update related specs
2025-01-15 15:44:24 -06:00
Gaetan Craig-Riou
20df5c23e8 Remove before save callback to update shipping fees
It should be handled in the controller, it's currently handled in
`Spree::OrderContents#remove`. As long as we don't manually remove line
item from an order we should be good.
Currently it gets trigerred each time the order is saved, which seems to
happen mutiple time when we finalize an order. It's a bit useless to
recalculated the fees over and over
Context, it was added here : 217eda8362
2025-01-15 15:44:24 -06:00
Maikel Linke
a8fb6492f4 Lookup backorder for updates with saved link 2024-11-19 15:53:59 +11:00
Maikel Linke
4610141ed8 Add shortcut to order's exchange 2024-11-19 15:53:59 +11:00
Maikel Linke
90589ae868 Spec restock after order cancellation 2024-10-23 16:35:59 +11:00
Maikel Linke
167a69d2ef Spec change in order state more precisely 2024-10-23 14:46:12 +11:00
Maikel Linke
09524e266f Fix method name description 2024-10-23 14:42:02 +11:00
Maikel Linke
a37b0eb698 Replace mocking on tested order object
It's more realistic this way.
2024-07-11 15:42:23 +10:00
Maikel Linke
2e36c699f6 Test resulting stock instead of method calls
The next test case wasn't asserting anything as well. The referenced
method `decrease_stock_for_variant` doesn't actually exist.
2024-07-11 15:42:23 +10:00
Maikel Linke
cb4e7d6fe3 Fix spec to assert updating shipments
The spec was asserting on all shipments of the order but there were one.
In consequence, the spec didn't assert anything. Now I set up a shipment
that is asserted on. I'm stil not sure how useful this spec is though.
2024-07-11 15:42:23 +10:00
Maikel Linke
94d560d341 Replace expecting method call with outcome
This is more realistic and robust. Don't mock the class under test (even
though `touch` is actually provided by Active Record).
2024-07-11 15:42:22 +10:00
Maikel Linke
eea227bc22 Style order spec block a tiny bit 2024-07-11 15:42:22 +10:00
Gaetan Craig-Riou
612ab097b7 Fix order specs 2024-07-03 10:17:49 +10:00
Maikel Linke
6317fe1b71 Disable RSpec monkey patching 2024-05-09 12:24:41 +10:00
Maikel Linke
9320ed0559 And less stubbing is better.
[skip ci]
2024-05-09 11:14:13 +10:00
Konrad
27a4202fa4 Merge pull request #12357 from mkllnk/fix-invoice-order
Fix: preserve order of invoices in bulk print
2024-04-11 12:47:14 +02:00
Maikel Linke
48b447500f Move selection of invoicable orders to database
It's more efficient and should allow for further optimisations.
2024-04-10 16:52:56 +10:00
Maikel Linke
54738fc552 Remove unnecessary method checkout_steps
It allowed introspection of a dynamic state machine. But the only two
usages of this method only referred to the first state which is always
the same. Our complicated checkout logic needs more clarity and
introducing some hardcoded state names here can only help.
2024-03-21 13:43:54 +11:00
Feruz Oripov
9d919938f3 Group Order && OrderCycle related services and specs 2024-03-16 19:07:08 +05:00
Maikel Linke
bd6b0ddbf3 Enforce RSpec expect(..).not_to over to_not 2024-03-07 16:57:54 +11:00
David Cook
2107aeded1 Un-safely autocorrect RSpec/ExpectChange 2024-02-23 12:17:09 +11:00
Ahmed Ejaz
cb9c2963af 11768: add roundoff
- Fix lint issues
2024-01-19 01:52:24 +05:00
Ahmed Ejaz
a3592cb14a 11768: add specs
- For applied_voucher_rate method in order
2024-01-19 01:52:24 +05:00
Neal Chambers
c3b4781a28 Safely autocorrect Style/RedundantConstantBase
Inspecting 1509 files
.........................................................................................................C.........................................C......................................................................................................................................................................................................................................................................................................................................................................................................................................................................C.......................................................................................................................................................................................................................................................................................................................................................................................................................C.........................................................................................................................................................................CCC........................................C......................................................................................C......................................................................................................................................................................................................

Offenses:

app/controllers/split_checkout_controller.rb:5:33: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
class SplitCheckoutController < ::BaseController
                                ^^
app/controllers/webhook_endpoints_controller.rb:3:36: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
class WebhookEndpointsController < ::BaseController
                                   ^^
config.ru:5:9: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
require ::File.expand_path('config/environment', __dir__)
        ^^
spec/helpers/checkout_helper_spec.rb:168:68: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
      let!(:tax_rate) { create(:tax_rate, amount: 0.1, calculator: ::Calculator::DefaultTax.new) }
                                                                   ^^
spec/models/spree/order_spec.rb:619:25: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
    let(:fee_handler) { ::OrderFeesHandler.new(subject) }
                        ^^
spec/models/spree/payment_method_spec.rb:150:51: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
                                      calculator: ::Calculator::FlatRate.new(preferred_amount: 10))
                                                  ^^
spec/models/spree/payment_method_spec.rb:154:54: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
                                         calculator: ::Calculator::FlatPercentItemTotal
                                                     ^^
spec/models/spree/payment_spec.rb:429:49: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
            create(:payment_method, calculator: ::Calculator::FlatRate.new(preferred_amount: 10))
                                                ^^
spec/models/spree/payment_spec.rb:1002:11: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
          ::Calculator::FlatPercentItemTotal.new(preferred_flat_percent: 10)
          ^^
spec/models/spree/payment_spec.rb:1039:28: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
        let(:calculator) { ::Calculator::FlatPercentItemTotal.new(preferred_flat_percent: 10) }
                           ^^
spec/queries/complete_visible_orders_spec.rb:12:31: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
    let(:order_permissions) { ::Permissions::Order.new(user, filter_canceled) }
                              ^^
spec/services/paypal_items_builder_spec.rb:34:37: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
                        calculator: ::Calculator::DefaultTax.new)
                                    ^^
spec/services/paypal_items_builder_spec.rb:38:37: C: [Corrected] Style/RedundantConstantBase: Remove redundant ::.
                        calculator: ::Calculator::DefaultTax.new)
                                    ^^

1509 files inspected, 13 offenses detected, 13 offenses corrected
2023-11-10 09:13:57 +09:00
Ryan Murphy
4db6570039 9235: Prevent customers from editing shipped orders 2023-10-03 08:36:57 -04:00
Neal Chambers
fe88a88206 Fix Style/HashSyntax 2023-09-22 09:08:50 +09:00
Gaetan Craig-Riou
619285ad4a Add voucher_type to voucher
And update related specs
voucher_type doesn't do anything for now.
2023-08-11 14:19:25 +10:00
Konrad
c3414143e6 Merge pull request #11222 from Matt-Yorkley/checkout-controller
Reduce controller size
2023-08-10 23:28:57 +02:00
Matt-Yorkley
82b8bb74a1 Remove #before_save_hook method and clarify it's intention 2023-08-04 08:43:15 +10:00
Mohamed ABDELLANI
c921250d68 implement Spree::Order#invoiceable?
This will be used to filter the orders when running bulk print
2023-08-03 14:52:45 +01:00
David Cook
0ba342bf11 Merge pull request #10965 from macanudo527/fix_linelength_bundle2
Fix Layout/LineLength - Bundle 2
2023-06-29 15:27:08 +10:00
Neal Chambers
5b6f45931c Fix Layout/LineLength 2023-06-26 13:06:56 +09:00
Matt-Yorkley
837e581c29 Reload order after cancelling it in tests that check shipment states 2023-06-14 10:19:30 +01:00
Mohamed ABDELLANI
bd0e7cdfc8 remove legacy checkout tests 2023-06-13 14:58:16 +01:00
Matt-Yorkley
f4261b85b8 Merge pull request #10940 from Matt-Yorkley/order-tidyup
Order class tidyup
2023-06-08 15:06:59 +01:00
Matt-Yorkley
e88843c733 Ensure order number is generated nicely on new records 2023-06-07 00:58:43 +01:00
Matt-Yorkley
17b10d10c0 Make Order #deliver_order_confirmation_email method private 2023-06-05 21:30:43 +01:00
Gaetan Craig-Riou
b585f77be4 Make enterprise mandatory for a voucher
It should have already been the case...
2023-05-16 16:20:04 +10:00
Gaetan Craig-Riou
2d8fa24862 Add a voucher factory
As vouchers are getting more complicated, it makes sense to use a
factory to simplify writing test.
2023-05-16 16:20:04 +10:00
Gaetan Craig-Riou
43ab881181 Rename order association to voucher_adjustments
The name vouchers is a bit confusing as the order is linked to a
voucher adjutment and not the actual voucher
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
3ec58d8791 Add #vouchers, return an array of voucher adjustments 2023-05-15 13:42:37 +10:00