Gaetan Craig-Riou
bc23423521
Remove the link between enterprise and internal payment method
...
Enterprise have access to the internal payment method by default.
The access is handled at the application level so we don't have to
manage database links.
2026-03-10 16:07:43 +11:00
Gaetan Craig-Riou
41e4fd79a3
Move logic to apply customer credit to it's on service
...
It's now called as a before transition callback when the order move to
payment. We need to apply the credit at this point to account for
order fees, ie: shippment fees.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
b42b10fcd1
Use the order outstanding balance to create payment
...
When a customer credit is applied to an order, the balance due is the
order outstanding balance and not the order total.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
c8dbf4c6f0
Add error handling around payment with credit
...
For now we log error but don't report it to the user, so they can
proceed through the checkout.
2026-03-10 16:07:42 +11:00
Gaetan Craig-Riou
f5a3093e41
Automatically use credit at checkout when available
...
This only cover the ideal scenario, error handling will be added later
2026-03-10 16:07:42 +11:00
Maikel Linke
dcb6f4676d
Remove all unnecessary spec_helper require statements
...
The `.rspec` file is doing this for us.
2026-01-21 12:35:34 +11:00
Ahmed Ejaz
3794f69cad
Add shared examples to handle closed order cycle in checkout process
2025-11-02 01:48:10 +05:00
Gaetan Craig-Riou
66041061fb
Redeem VINE voucher before redirecting to payment url
...
When using paypal, we need to redeem the voucher before redirecting to
the payment gateway url, otherwise the voucher will never get redeemed.
2025-08-11 16:28:04 +10:00
cyrillefr
a7eb95afc5
Fixes RSpecRailsInferredSpecType in base controllers
2025-05-20 12:45:34 +02:00
cyrillefr
5063a772f0
Fixes RSpec Rails HaveHttpStatus cop in controllers
2025-05-14 10:58:04 +02:00
David Cook
f37742d84a
Prevent exception when payment has been cleared
...
Note that in the real world, this avoids a crash, but still requires the user to click the button two more times before it will work, with no hints as to why. So not a great help.
2025-03-11 16:19:21 +11:00
David Cook
25eb00f69c
Spec for #12693
...
I tried to build it within context "with existing invalid payments", but couldn't get it to work so created a different one.
2025-03-11 16:10:54 +11:00
David Cook
0f923405cb
Attempt to spec for error
...
It didn't catch the error I was looking for. I'm not sure if it is a valid use case, but it still seems helpful to add coverage for current functionality.
2025-03-11 16:08:27 +11:00
Gaetan Craig-Riou
cdcab7c7c6
Update insufficient stock logic
...
We now check for insufficient stock when loading the checkout details
or before updating the order.
2025-02-04 15:39:47 +11:00
Gaetan Craig-Riou
b42cba8c37
Add vine_voucher factory
2024-11-28 13:35:01 +01:00
Gaetan Craig-Riou
12cf62c2ff
Refactor, add OrderManagement::Order::Updater#update_voucher
...
Move the logic to update a voucher and associated order to
`OrderManagement`
2024-11-28 13:35:01 +01:00
Gaetan Craig-Riou
0569b30e0d
Refactor Vine related services
...
Move them under Vine module to keep the code nicely organised
2024-11-28 13:35:01 +01:00
Gaetan Craig-Riou
129ccc33f8
CheckoutController, add VINE voucher redemption
2024-11-28 13:35:01 +01:00
Maikel Linke
71ca292c92
Synchronise stock with DFC catalog during checkout
...
This will delay the checkout request by a few seconds if there's stock
to sync. But we minimise the chance of missing reduced stock from orders
on another platform.
We still have a gap between the checkout and placing a backorder. In
that time we can't guarantee enough stock. But let's tackle that after
the pilot.
2024-10-09 14:47:07 +11:00
filipefurtad0
a1e2d3a93b
Removes negative expect
...
Removes unused error message
2024-05-13 12:55:55 +01:00
David Cook
62fefd5d49
Implement required method
...
Most of the time this doesn't get called because source_required: false.
But sometimes it [does happen](https://app.bugsnag.com/yaycode/openfoodnetwork-uk/errors/66329690f4b6380007e8a4f8)
I have a feeling that source_required? could be moved to the superclass as payment_source_class.present?. But I don't know enough about this area of the system to try it...
2024-05-13 12:55:55 +01:00
filipefurtad0
ffdbd0d7d4
Reproduces Bugsnag error
...
For details see: https://app.bugsnag.com/open-food-network-canada-1/open-food-network-canada/errors/66314b2e78673c00073d2de9?filters[event.since]=30d&filters[error.status]=open&filters[search]=payment_source_class&event_id=66314b2e00e6e45d746f0000
Adds test case for Cash and Stripe payment methods
With no source
2024-05-13 12:55:55 +01:00
filipefurtad0
282acd256b
Undoes changes: removes unecessary test
2024-05-13 12:55:55 +01:00
filipefurtad0
d520e3838c
Removes unused spec related to legacy checkout
...
We can see on the respective controller spec, that having a Stripe SCA payment, with no source does not trigger the error 400, observed on the legacy checkout.
2024-05-13 12:55:52 +01:00
Maikel Linke
6317fe1b71
Disable RSpec monkey patching
2024-05-09 12:24:41 +10: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
Cillian O'Ruanaidh
931e42cf14
Rename split_checkout_controller_spec.rb to checkout_controller_spec.rb
2023-12-01 11:23:50 +00:00
Mohamed ABDELLANI
c2aaf88e98
remove checkout controller
2023-06-13 14:58:16 +01:00
cyrillefr
7c24f6b26f
Remove I18n keys from Pay/Stripe/Chkout Ctrllers spec
2023-02-15 11:08:19 +01:00
Matt-Yorkley
5e6dd1e6e1
Move #check_order_cycle_expiry method to OrderStockCheck and don't call it from BaseController :before_action callback
2022-01-31 15:55:35 +00:00
Matt-Yorkley
5a70664a6a
Pull stripe-related tests into new controller spec
2022-01-14 19:41:08 +00:00
Matt-Yorkley
48c4ecde08
Update checkout specs using deleted OrderCompletionReset
2022-01-14 19:41:08 +00:00
Matt-Yorkley
9583a3cc3d
Use order token param in specs
2022-01-14 19:41:08 +00:00
Matt-Yorkley
9b2801db24
Fix calls to private method #expire_current_order in specs
2022-01-14 19:41:08 +00:00
Matt-Yorkley
f0d54dd083
Tidy up #redirect_to_payment_gateway
2021-12-22 09:58:08 +00:00
Matt-Yorkley
ef7a02004e
Update specs
2021-12-15 21:20:58 +00:00
Matt-Yorkley
f8349434bf
Skip address setup logic if we're coming from Stripe
...
The code here runs from a callback which was originally designed to make sure the checkout page was set up correctly in the "normal" checkout workflow. It wasn't really designed to be run when the page is being loaded a second time due to the user being redirected back from Stripe (with SCA). The things it's doing here are necessary in the former case, but a really bad idea in the latter (potentially messing up the order's ship and bill addresses in certain cases like guest checkout).
2021-11-14 16:54:44 +00:00
Matt-Yorkley
e1393c96ca
Correctly void transactions when payments are cancelled due to stock issues
2021-07-27 23:24:00 +01:00
Matt-Yorkley
8e1631bfc7
Set adjustments associated with voided payments to ineligible.
...
Otherwise we can end up with duplicate transaction fees for voided payments.
2021-07-12 08:28:32 +01:00
Matt-Yorkley
e6d9545c30
Use :incomplete scope when voiding payments that can't be processed due to stock changes
2021-07-09 13:31:00 +01:00
Matt-Yorkley
a199f80ed4
Add test for insufficient stock behavior after Stripe redirect
2021-07-09 13:14:43 +01:00
Matt-Yorkley
2cd6b05aba
Use Order::Contents service in test setup
2021-07-09 13:14:43 +01:00
Pau Pérez Fabregat
db993652c4
Merge branch 'master' into payment-states
2021-06-18 12:20:26 +02:00
Andy Brett
d9aa1b054a
update payments to be in requires_authorization state in specs
2021-06-17 18:10:41 -07:00
Luis Ramos
23627c5453
Run rubocop -a (safe corrections) removing all exceptions so all possible fixes are applied
...
9290 issues fixed
2021-06-17 22:19:26 +01:00
Andy Brett
b3e08b47b9
set Stripe api key directly instead of using allow
2021-06-01 22:33:12 +01:00
Luis Ramos
a1ac4e85ed
Replace update_attributes with update
2021-05-19 09:54:25 -07: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
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