- Introduced `safety_seal` column in the `orders` table. - Updated order creation and completion logic to handle safety seal values. - Enhanced order and booking classes to manage safety seal attachment and retrieval. - Added tests to validate safety seal functionality in order processing.
65 lines
2.1 KiB
PHP
65 lines
2.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
usesApiSuite();
|
|
|
|
it('returns a setup required error when department terminal readers are requested without terminal setup', function (): void {
|
|
$department = api_fixtures()->createDepartment([
|
|
'name' => 'Stripe Setup Pending Department',
|
|
]);
|
|
$session = api_fixtures()->createUserSession([
|
|
'modules_stripe_department_terminal_readers_list',
|
|
'department_access_' . $department['id'],
|
|
]);
|
|
|
|
$response = api_client()->get(
|
|
'/modules/stripe/department/terminal/readers?id=' . $department['id'],
|
|
$session['headers']
|
|
);
|
|
|
|
$response
|
|
->assertStatus(409)
|
|
->assertEnvelope()
|
|
->assertSuccess(false)
|
|
->assertMessage('Card payments are not ready for this department. Open Stripe setup and choose a terminal location.');
|
|
|
|
expect($response->data())
|
|
->toBeArray()
|
|
->toHaveKey('code', 'stripe_terminal_setup_required');
|
|
});
|
|
|
|
it('returns a setup required error when creating a payment intent for a department without terminal setup', function (): void {
|
|
$department = api_fixtures()->createDepartment([
|
|
'name' => 'Stripe Payment Intent Pending Department',
|
|
]);
|
|
$customer = api_fixtures()->createUser([
|
|
'display_name' => 'Stripe Payment Intent Customer',
|
|
]);
|
|
$order = api_fixtures()->createOrder([
|
|
'customer_id' => $customer['customer_number'],
|
|
'department_id' => $department['id'],
|
|
'reference' => 'STRIPE-SETUP-REQUIRED',
|
|
'reg_1' => 'STRIPE01',
|
|
]);
|
|
$session = api_fixtures()->createUserSession([
|
|
'charge_order',
|
|
]);
|
|
|
|
$response = api_client()->post('/orders/module/stripe/payment_intent', [
|
|
'id' => $order['id'],
|
|
'reader' => 'reader_pending_setup',
|
|
'tax_percentage' => 25,
|
|
], $session['headers']);
|
|
|
|
$response
|
|
->assertStatus(409)
|
|
->assertEnvelope()
|
|
->assertSuccess(false)
|
|
->assertMessage('Card payments are not ready for this department. Open Stripe setup and choose a terminal location.');
|
|
|
|
expect($response->data())
|
|
->toBeArray()
|
|
->toHaveKey('code', 'stripe_terminal_setup_required');
|
|
});
|