Commit Graph

770 Commits

Author SHA1 Message Date
Luis Ramos
2cb6124b7a Use existing product factory, the custom product is not needed here 2020-09-01 17:13:07 +01:00
Luis Ramos
5958c2f68c Rubocop autocorrect 2020-09-01 17:09:22 +01:00
Luis Ramos
b9f7a98c46 Bring image, asset and images_helper from spree_core 2020-09-01 17:09:22 +01:00
Pau Pérez Fabregat
4984cc9758 Merge branch 'master' into ctry_zone 2020-08-28 09:21:57 +02:00
Pau Pérez Fabregat
6f33ae586e Merge pull request #5943 from luisramos0/spree_factories
[Bye bye Spree] Make OFN independent of all spree spec factories
2020-08-27 08:54:20 +02:00
Luis Ramos
5b3e350204 Rename zone.country_list to zone.countries 2020-08-26 23:12:48 +01:00
Luis Ramos
f9aac02e13 Run rubocop -a 2020-08-26 22:16:02 +01: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
4ac6664502 Replace FactoryGirl with FactoryBot weverywhere 2020-08-23 14:35:58 +01:00
Luis Ramos
1b66a72c7f Run transpec 2020-08-07 14:03:15 +01:00
Luis Ramos
798194c03e Fix payment_method spec 2020-08-07 14:02:05 +01:00
Luis Ramos
b21a969502 Fix new credit_card_spec 2020-08-07 13:45:25 +01:00
Luis Ramos
d746ae3d9e Fix easy rubocop issues 2020-08-07 13:28:09 +01:00
Luis Ramos
621e2a3132 Run rubocop autocorrect 2020-08-07 13:16:38 +01:00
Luis Ramos
abaa66cc14 Bring models from spree_core 2020-08-07 13:06:16 +01:00
Luis Ramos
43e64f3555 Delete dead code 2020-08-06 01:41:28 +01:00
Luis Ramos
73e1530a30 Fix specs 2020-08-06 01:35:09 +01:00
Luis Ramos
b09a9c5b8b Fix easy rubocop issues 2020-08-06 01:22:31 +01:00
Luis Ramos
14358256ed Bring country, zone, state and zone_member from spree together with respective specs 2020-08-06 01:09:35 +01: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
cc7363d9e7 Merge pull request #5824 from luisramos0/improve_checkout
Reset order state to cart in case the stripe SCA authorization step fails
2020-08-01 15:53:41 +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
e80337a458 Transpec checkout_spec 2020-07-28 23:29:49 +01:00
Luis Ramos
51de5269dc Fix specs in checkout_spec 2020-07-28 23:29:49 +01:00
Luis Ramos
e99f0dc6b7 Rubocop autocorrect and easy rubocop issues 2020-07-28 23:29:49 +01:00
Luis Ramos
d8a96c9d34 Bring order checkout workflow and some of its specs from spree_core 2020-07-28 23:29:49 +01:00
Luis Ramos
d673f278ce Add unit test to order.charge_shipping_and_payment_fees! 2020-07-27 21:27:23 +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
f2fd426c4a Fix old Spree specs
Given the importance of this code, it doesn't bring me much confidence.
Apparently, this specs where using a non-existent state by mistake and
this went unnoticed because the payment creation was failing silently in
payment/processing.rb.

This unearthed the fact that our `#ensure_correct_adjustment` needs the
order to be persisted to succeed.
2020-07-23 20:24:31 +02:00
Pau Perez
1c026479f5 Replace spec's syntax to RSpec 3 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
6ca6938df4 Merge branch 'master' into bring-in-payment-model
* master: (91 commits)
  Bump ddtrace from 0.37.0 to 0.38.0
  Add spec to cover SQL query issue with OCs where the only products from the coordinator inventory are renderer
  Remove unnecessary order statement, the relation will only be used for counting products
  Move select out of scope visible_for because it is breaking exchange_product queries and it's just not needed there. The only other use of this product's scope visible_for is the enterprise serializer so we add the select to it.
  Make OC advanced settings work by permitting the extra parameter
  Remove conflicting and duplicate route
  Bump bugsnag from 6.13.1 to 6.14.0
  Make charges update method update the first pending payment
  Move require_login_then_redirect_to to the only place where it is called
  Make broken spec fail reliably and set it pending
  Updating translations for config/locales/en_GB.yml
  Update all locales with the latest Transifex translations
  Doc defensive coding needed by pin payments
  Make method a little simple by extracting method
  Simplify spec, the 2 minutes wait is not necessary anylonger
  Make unauthorized in ControllerHelpers::Auth the same as in Spree::Admin::BaseController
  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
  Adapt specs to the move of unauthorized route from the spree routes to the main app routes
  Delete spree_user_signup which is from spree promotions code that we dont use
  Remove try_spree_current_user
  ...
2020-07-23 20:20:43 +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
Pau Perez
70afcee3fc Fix Spree's spec clashing with a customization
`#save_requested_by_customer` is an accessor we added and thus, the
Spree's spec didn't consider.
2020-07-15 14:18:36 +02:00
Pau Perez
683794636b Rename spec file 2020-07-10 11:57:36 +02:00
Pau Perez
2f4648342f Merge decorator specs with Spree's ones
They are now isolated from each other.
2020-07-10 11:50:20 +02:00
Pau Perez
562f397b22 Isolate Spree's specs into their own context
This way we don't mix contexts while merging in our own decorator tests.
2020-07-10 11:46:59 +02:00
Pau Perez
3fb6193098 Move adjustments logic from decorator into model 2020-07-10 10:41:44 +02:00
Pau Perez
861726200c Move localize_number from decorator to model 2020-07-10 10:41:44 +02:00
Pau Perez
48910aeb77 Move #refund! to the processing.rb 2020-07-10 10:41:44 +02:00
Pau Perez
eafaa97b0e Temporarily skip spec
I'll move on to other easier issues and get back to it when we're in
a better position.
2020-07-10 10:41:44 +02:00
Pau Perez
31d0d4bcae Fix error "no parent is saved"
The exact error is

```
ActiveRecord::RecordNotSaved:
       You cannot call create unless the parent is saved
```

raised from app/models/spree/payment_decorator.rb:29:in `ensure_correct_adjustment'
2020-07-10 10:41:44 +02:00
Pau Perez
9935df9f2d Move Pin payment method from decorator into model 2020-07-10 10:41:44 +02:00
Pau Perez
0ad8dcc2c5 Fix payment log entries specs
The tight coupling between doesn't give other option but to check the
private method is called. The specs successfully stub
`log_entries#create` but for some reason the model instance that gets
evaluated it's not the stubbed one.
2020-07-10 10:41:44 +02:00
Pau Perez
a01f601363 Fix yet another spec 2020-07-10 10:41:44 +02:00
Pau Perez
e1ea5dbcb3 Fix all but the 7 last payment specs 2020-07-10 10:41:44 +02:00
Pau Perez
abacd06f6b Fix credit card instance in specs 2020-07-10 10:41:44 +02:00
Pau Perez
06aa56164f Bring in Payment model from Spree 2020-07-10 10:41:44 +02:00
Luis Ramos
f62546254f Define DefaultTax calculator outside of spree namespace the tax_rate to be used by the app and make spree specs use calculators outside the spree namespace 2020-07-07 17:26:24 +01:00