Commit Graph

1421 Commits

Author SHA1 Message Date
Matt-Yorkley
16e3af9b49 Update OrderController spec 2021-05-16 20:11:45 +01:00
Matt-Yorkley
2e248744c0 Merge pull request #7520 from Matt-Yorkley/shipment-controller
Shipment controller: test coverage and improvements
2021-05-13 20:26:51 +02:00
Matt-Yorkley
e60a513c88 Merge pull request #7571 from coopdevs/make-specs-accurate
Properly mock validator and extend tests
2021-05-11 22:24:01 +02:00
Matt-Yorkley
902bbf7dc4 Merge pull request #7576 from Matt-Yorkley/bulk-line-items
Add test coverage to BulkLineItemsController actions
2021-05-11 01:47:17 +02:00
Andy Brett
d29ef0d7b1 Merge branch 'master' into make-specs-accurate 2021-05-10 16:10:33 -07:00
Andy Brett
17a0063b40 Merge pull request #7402 from filipefurtad0/products_spec_add_ons
Adds coverage for product deletion and cloning
2021-05-10 06:26:11 -07:00
Matt-Yorkley
43e41f4980 Add more explicit test coverage to BulkLineItemsController acitons
This spec includes taxes on line items, fees on the order and on line items, taxes on fees (inherited and non-inherited), shipping and payment fees and taxes on shipping. It checks all of these things are correctly updated after the order is changed via BOM.
2021-05-07 11:54:04 +01:00
Pau Perez
fd5e0fd60f Properly mock validator and extend tests
Tests were passing but not due to the expected reason. While at it, we
extended the assertions to be more precise.
2021-05-07 08:35:54 +02:00
Luis Ramos
a2de86c23e Replace be_success on test_reponse with status 200
In rails 6 response.success? is not supported.
2021-05-06 23:51:30 +01:00
Pau Perez
2147584daf Validate intents against Stripe and display errors
Now the existing validation is redundant. It's Stripe's API who does
that now. It's up to them to decide what's a valid intent.
2021-05-06 16:19:01 +02:00
filipefurtad0
a476416dc4 Removes html tr tag; Clarifies it block 2021-05-03 17:03:34 +01:00
Matt-Yorkley
e290c128bf Fix error in Api::ShipmentController#update with :unlock parameter
This is a generic issue caused by a clash between state machines trying to define (or failing to define) the #open method on adjustments as part of their state changes interface. This method is already defined in Object. For more details, see: bb42e33bf7/lib/state_machines/machine.rb (L323-L350)
2021-04-30 14:13:22 +01:00
Matt-Yorkley
95a73704a2 Add more test coverage to Api::ShipmentController#update 2021-04-30 14:09:32 +01:00
Matt-Yorkley
b843b871f6 Ensure order totals and payment/shipment states are correct when changing shipping method on a completed order.
This used to happen via an after_save callback in Shipment, which called `order.update!`. That has recently been removed. After changing a shipment's selected shipping rate (shipping method), we need to ensure the order's totals and states are updated. We don't need to update all of the order's adjustments though (see previous commit).

FYI Spree handled this issue like this: 24388485ed, but there are lots of things about that commit that are clearly awful, like: params handling in a model, duplication of Order::Updater logic across the codebase, the Shipment class having responsiblity for knowing which things need to be updated on the order, etc. The result is ultimately the same as what we're doing here though.
2021-04-30 12:57:01 +01:00
Matt-Yorkley
d3f41f14c7 Add test coverage for Api::ShipmentsController#update 2021-04-30 12:45:49 +01:00
Andy Brett
8ba139c6fb Merge pull request #6825 from julesemmac/6584-map-location-confirm
6584 map location confirm
2021-04-29 14:04:06 -07:00
Pau Perez
679de40a41 Move specs to where they belong 2021-04-26 10:15:13 +02:00
Cillian O'Ruanaidh
c41476423b Merge latest master into julesemmac/6584-map-location-confirm and resolve conflict in api/enterprises_controller.rb 2021-04-22 19:43:49 +01:00
Pau Pérez Fabregat
c1da97527a Merge pull request #7420 from Matt-Yorkley/adjustments-controller
Adjustments controller index
2021-04-22 19:15:28 +02:00
Matt-Yorkley
bef3f8c51f Merge pull request #7452 from Matt-Yorkley/adjustments-permissions
Update CanCan permissions on adjustments
2021-04-22 18:07:18 +02:00
Matt-Yorkley
ecd433b343 Update permissions on adjustments
The previous permissions assumed that an adjustment's "adjustable" could only be only line items or orders, and that's no longer true. It's now commonly a shipment or a payment as well.
2021-04-21 18:17:20 +01:00
Andy Brett
479897fcbd Merge pull request #7315 from Matt-Yorkley/double-checkout
Double checkout
2021-04-20 10:44:32 -07:00
Matt-Yorkley
a3b90f3a63 Merge pull request #7443 from mkllnk/order-cycle-factory
Spec customer creation during checkout
2021-04-20 10:08:57 +02:00
Pau Pérez Fabregat
87624f4c9f Merge pull request #7416 from coopdevs/remove-old-balance-implementation
Remove old balance implementation
2021-04-20 08:51:27 +02:00
Maikel Linke
1753156578 Spec customer creation during checkout
Expanding the controller spec with real data instead of mocks to test
the real callback behaviours.
2021-04-20 16:14:41 +10:00
Andy Brett
aca19edd3b Merge pull request #7421 from andrewpbrett/rails-5-2-prep-2
Prepare for Rails 5.2
2021-04-19 11:32:21 -07:00
Pau Perez
5bca7d1f8f Remove the old balance's code branch
This keeps the `OrderBalance` abstraction but removes the old code now
that the feature is enabled for all users in all instances and there are
no bugs reported. It's become dead code.
2021-04-19 11:52:41 +02:00
Andy Brett
472b0b5964 Merge pull request #7412 from andrewpbrett/no-zero-unit-values
Add greater-than-zero validation to variant unit_value
2021-04-15 10:05:38 -07:00
Andy Brett
f85ef86b1b update spec with valid variant 2021-04-15 09:43:22 -07:00
Matt-Yorkley
d29c0cdcb7 Don't show line item adjustments in Admin::OrdersHelper#order_adjustments_for_display
Line item adjustments are displayed separately, if we don't filter them here they get displayed twice.
2021-04-15 14:23:37 +01:00
Matt-Yorkley
206d9e06ea Reinstate old logic for adjustments controller
Certain types of adjustments (eg enterprise fees) cannot really be changed arbitrarily; when the order is saved and "recalculated" the values will be reset. The adjustments are still shown in the main order edit tab, but are not editable in the adjustments tab.
2021-04-15 14:00:48 +01:00
Matt-Yorkley
fa14a80295 Adapt order payment creation in failing specs
In the test setups here order.payments is empty
2021-04-14 09:22:31 -07:00
Matt-Yorkley
83acc3faac Improve test setup where checking ineligible payment fee adjustments 2021-04-14 12:01:21 +01:00
Matt-Yorkley
be6fd23ebc Fix unpersisted changes in checkout controller specs
The test setup left the object with unsaved changes, which doesn't work nicely with the new order locking added recently on the edit action.

Fixes ~5 specs including:

5) CheckoutController redirection to cart and stripe redirects when some items are out of stock
     Failure/Error:
       order.with_lock do
         lock_variants_of(order)
         yield
       end

     RuntimeError:
       Locking a record with unpersisted changes is not supported. Use `save` to persist the changes, or `reload` to discard them explicitly.
     # ./app/services/current_order_locker.rb:22:in `lock_order_and_variants'
     # ./app/services/current_order_locker.rb:11:in `around'
     # ./spec/controllers/checkout_controller_spec.rb:57:in `block (3 levels) in <top (required)>'
2021-04-13 16:54:31 -07:00
Matt-Yorkley
0dde8112d2 Add redirect specs for PaypalController#express 2021-04-12 17:23:49 +01:00
Matt-Yorkley
06c01955f5 Rename describe block names to controller actions 2021-04-12 16:44:45 +01:00
Pau Perez
5cf4aecc26 Enable customer_balance toggle in tests
This makes all tests exercise the new branch that `OrderBalance`
abstracts. It follows up #7363 addressing code review comments.
2021-04-12 09:31:23 +02:00
Pau Pérez Fabregat
92f45badac Merge pull request #7340 from Matt-Yorkley/deleted-enterprise-fees
Add test coverage: deleted enterprise fees
2021-04-09 09:05:11 +02:00
Andy Brett
199efb1e20 Merge pull request #7351 from Matt-Yorkley/dead-code-discount-order
Dead code: DiscountOrder
2021-04-08 12:48:38 -07:00
Andy Brett
c3c482c0fe fix failing spec
Another PR introduced a before_action to the controller, so we have to stub that out to avoid the double receiving an unexpected message
2021-04-08 08:53:35 -07:00
Andy Brett
9b3628a4dd Merge pull request #7299 from andrewpbrett/line-item-fees
Update fees after changing a line item
2021-04-08 07:26:34 -07:00
Matt-Yorkley
e1a10db410 Remove :tag_rule factory and update tests to use alternate (valid) factories 2021-04-08 12:37:45 +01:00
Matt-Yorkley
9a4bbacbaa Update enterprises controller spec to use different (valid) TagRule class 2021-04-08 12:37:19 +01:00
Maikel Linke
cf22a864f3 Fix typo in spec description 2021-04-08 09:24:39 +10:00
Maikel Linke
bfa5d443f1 Don't change canceled orders
We have a PR already that removes the UI for this when the order is
canceled. Implementing it on controller-side makes sure that it doesn't
happen accidentally if the user has multiple tabs open.
2021-04-08 09:24:39 +10:00
Maikel Linke
f0d5bf0ab5 Disallow changes of canceled order 2021-04-08 09:24:39 +10:00
Maikel Linke
f2a2cbd3f9 Spec stock bug when changing canceled orders
We decided to disallow changing canceled orders in a way that would
affect stock or totals.
2021-04-08 09:24:39 +10:00
Maikel Linke
8079fb0315 Add specs for stock changes 2021-04-08 09:24:39 +10:00
Maikel Linke
e1d22aec83 Prepare for more shipment specs with different context
This commit is best viewed ignoring whitespaces.
2021-04-08 09:24:39 +10:00
Maikel Linke
c5e72f8563 Test shipment changes more precisely 2021-04-08 09:24:39 +10:00