Commit Graph

1161 Commits

Author SHA1 Message Date
Andy Brett
adb29a9c8f add preferred_unit to weight shipping calculator 2020-09-07 08:41:48 -07:00
Andy Brett
5793f0103d Revert "Add a per-pound calculator and a spec for it"
This reverts commit e8eadcbf39.
2020-09-07 07:50:59 -07:00
Andy Brett
e8eadcbf39 Add a per-pound calculator and a spec for it 2020-09-06 09:03:06 -07:00
Luis Ramos
c9758b8b0b Merge pull request #5957 from coopdevs/improve-stripe-connection-spec
Improve StripeAccountsController#connect spec
2020-08-30 22:02:22 +01:00
Matt-Yorkley
28651bbecf Merge pull request #5941 from luisramos0/no_spree_specs
[Bye bye Spree] Make OFN independent of spec helpers under core/lib/testing_support
2020-08-27 17:05:45 +02:00
Pau Pérez Fabregat
2fa8cd54fd Merge pull request #5769 from Matt-Yorkley/customer-names
Customer names in reports
2020-08-27 15:39:47 +02:00
Pau Perez
6e3cfe9c54 Improve StripeAccountsController#connect spec
We are manually testing this while this is already covering the
connection of a Stripe account to an OFN instance. This makes it a bit
more comprehensive.
2020-08-27 13:43:54 +02:00
Luis Ramos
f6277416ce Simplify stock location factory and fix related issues in several factories 2020-08-23 17:34:02 +01:00
Luis Ramos
907afe3131 Remove dependency to BarAbility from spree_core 2020-08-22 18:14:53 +01:00
Luis Ramos
72f5b1b251 Revert "Remove unreachable order recovery code"
This reverts commit 355c5f5c55.

This code is necessary to preserver cart contents across logins on
different browser sessions.
2020-08-19 17:36:36 +01:00
Maikel Linke
355c5f5c55 Remove unreachable order recovery code
Every page load creates a cart order if none is present. So when a user
logs in, they always have an order stored in their session. And
therefore, we never got to recover an old order.

We could have fixed the code to restore old orders. But as far as I can
tell, order recovery hasn't been working for years and I couldn't find
any issue requesting this feature.

If we wanted to implement order recovery, it should probably be designed
more carefully and included in the `current_order` method.
2020-08-19 12:06:58 +10:00
Matt-Yorkley
23bb72faa6 Add Enterprise shop preference to allow customer names in reports 2020-08-14 20:48:32 +01:00
Maikel Linke
e8139d3948 Keep old incomplete (cart) orders
We used to delete old cart orders so that they wouldn't re-appear after
a successful checkout of another order. Keeping them ensures that we
don't remove an order that is still used by another device. It also
makes sure that we keep references of failed payments.
2020-08-14 10:02:48 +10:00
Maikel Linke
5761014205 Restore Spree customisations for controllers 2020-08-13 16:59:15 +10:00
Maikel Linke
90bf4f312b Document and spec current controller behaviour
When we imported and merged Spree's controller modules with our
decorators, Rails started using Spree's original code again.

This was first included in v3.2.0 and deployed on 28 July 2020.
2020-08-13 16:59:15 +10:00
Pau Pérez Fabregat
6e1dd78e9f Merge pull request #5828 from luisramos0/ent_user
Clean up AuthenticationWorkflow spec helper
2020-08-04 12:07:54 +02:00
Pau Perez
9ef59f440b Remove commented out includes 2020-08-04 08:50:14 +02:00
Luis Ramos
327d6c43d9 Merge pull request #4084 from openfoodfoundation/dependabot/bundler/devise-3.5.10
[Security] Bump devise from 2.2.8 to 3.5.10
2020-08-01 15:55:19 +01:00
Luis Ramos
ca9898839a Confirm! is deprecated and only redirects to confirm now in devise 3.5 2020-07-31 09:05:42 +01:00
Luis Ramos
0f29806198 Adapt code to devise 3.2 where the reset_password_token stored in the db is a encrypted version of the token sent in the email
In this particular case, the user confirmations controller is redirecting to the reset password page but it doesnt know what is the raw reset_password_token

So we regenerate the reset password token so that it can know what's the raw value for the redirect

The method User#regenerate_reset_password_token is a proxy to the protected method in Devise::Recoverable
2020-07-31 09:05:42 +01:00
Luis Ramos
e739c5185e Add specs to verify that Spree::Core::Gateway exceptions are handled correctly 2020-07-29 23:56:52 +01:00
Luis Ramos
ad00971ca8 Improve readability and add bugsnag error (now in the checkout_failed method) when checkout_fails while handling stripe redirect 2020-07-29 22:50:18 +01:00
Maikel Linke
fe0c04b650 Complete renaming of AdvanceOrderService to OrderWorkflow 2020-07-29 12:24:18 +10:00
Luis Ramos
4df81f0864 Remove unnecesasary and now broken require statement from spec and fix rubocop todo files 2020-07-27 15:32:35 +01:00
Luis Ramos
a2ebc614d9 Rename AuthenticationWorkflow to AuthenticationHelper 2020-07-27 15:32:35 +01:00
Luis Ramos
f1a3814c0d Rename login_as_enterprise_user to a more specific name controller_login_as_enterprise_user 2020-07-27 14:44:25 +01:00
Luis Ramos
8e84754f35 Rename login_as_admin to a more specific name controller_login_as_admin 2020-07-27 14:44:25 +01:00
Luis Ramos
1af4bf6994 Replace usage of create_enterprise_user with :user factory 2020-07-27 14:44:23 +01:00
Luis Ramos
16b9c8c814 Replace usage of create_enterprise_user with :user factory 2020-07-27 12:28:33 +01:00
Pau Perez
c0f72f89f2 Handle #refund! as we do with #credit! 2020-07-23 20:24:31 +02:00
Pau Perez
0f0a704147 Skip source validation when applying credit
The original payment may not be valid because its credit card may be
expired. Stripe gives this as a valid scenario returning a success and
we should do too.

When creating the credit payment we end up validating all sources in
a chain as follows.

```
Payment being persisted -> source payment -> original credit card.
```

The source payment was valid when created (It would not be persisted
otherwise) but its source card may now be expired, and that's legit.

There was also an issue with the `#invalidate_old_payments` callback. It
was causing the original payment to be validated again and thus the
credit payment failed to be persisted due to the original credit card
being expired. Switching this callback to use `#update_column` skips
validations and so we don't validate the source payment. We only care
about the state there, so it should be fine.
2020-07-23 20:24:31 +02:00
Pau Perez
73b1b1f172 DRY specs and fix rubocop failures 2020-07-23 20:24:31 +02:00
Pau Perez
59da07de66 Handle all errors when dealing with payment event
This basically catches ActiveRecord::RecordInvalid caused by an invalid
credit record, for instance, but also other situations we haven't
forseen.
2020-07-23 20:24:31 +02:00
Pau Perez
26ed601996 Test the payment controller handles GatewayError
After that, we can TDD a second one that also handles validation errors.
2020-07-23 20:24:31 +02:00
Luis Ramos
3dc9548fb3 Merge pull request #5775 from luisramos0/oc_inv_bug
Make OC advanced settings work by permitting the extra parameter and make the OC edit page work with that option activated
2020-07-22 22:23:28 +01:00
Luis Ramos
7ba8c5ace1 Make OC advanced settings work by permitting the extra parameter 2020-07-21 19:44:41 +01:00
Pau Pérez Fabregat
426c536750 Merge pull request #5677 from luisramos0/remove_spree_root_path
Bring ControllerHelpers from Spree and remove spree root path
2020-07-21 16:15:21 +02:00
Luis Ramos
62a3b6b720 Merge pull request #5406 from kristinalim/fix/5300-optimistic_locking_in_stock_items
5300 Avoid race conditions in Spree::StockItem
2020-07-17 22:24:59 +01:00
Luis Ramos
3599cb2047 Make unauthorized in ControllerHelpers::Auth the same as in Spree::Admin::BaseController
It adapts the method in ControllerHelpers::Auth to also use the after_login mechanism.

Ideally we would remove one of the two after_login mechanisms after_login and spree_user_return_to but they might still be in use.
2020-07-15 14:54:53 +01:00
Luis Ramos
8fac1bc9ca Move unauthorized view to HomeController only, all other calls to unauthorized will go through Auth which will redirect to the home controller IF the user is logged in or to login if user is not logged in 2020-07-15 14:54:52 +01:00
Luis Ramos
7f1797de58 Adapt specs to the move of unauthorized route from the spree routes to the main app routes 2020-07-15 14:54:52 +01:00
Luis Ramos
1666ffb191 Remove try_spree_current_user
This can be done because the method is defined in OFN's ApplicationController, so spree_current_user is available in all controllers
2020-07-15 14:53:35 +01:00
Matt-Yorkley
c009fed6be Update StrongParams for Pin Payments 2020-07-15 14:00:19 +02:00
Luis Ramos
5e8438c446 Move all calculators outside the spree namespace 2020-07-07 17:26:23 +01:00
Luis Ramos
6555f8bfba Add specs to cover stripeSCA refunds
Duplication between stripe connect and stripeSCA is done on purpose so we can easily delete stripeConnect code when the migration is done
2020-07-01 18:13:27 +01:00
Luis Ramos
ce493866f9 Extract refunds specs from payments controller spec 2020-07-01 13:19:38 +01:00
Luis Ramos
ecb1920fa9 Move payment_controller_spec to specific folder so we can break it in more specific parts 2020-07-01 13:14:39 +01:00
Luis Ramos
2dce10bec2 Fix admin enterprises controller spec, for some reason the correct controller is not being picked up in the test 2020-06-30 10:49:45 +01:00
Cillian O'Ruanaidh
a9664e103d Merge latest :master into :drop-blockenspiel branch and resolve conflicts related to Rubocop fixes. 2020-06-29 18:11:08 +01:00
Luis Ramos
2ad2836ac6 Merge pull request #5563 from luchiago/fix-missing-closed-oc-info-i18n
add missing i18n key for closed OC
2020-06-25 20:33:55 +01:00