Deploy Ladill Mini / deploy (push) Successful in 57s
Cross-origin fetch to ladl.link had no CORS, so showSheet never ran. Open the sheet immediately and keep Paystack behind the Continue CTA.
55 lines
2.4 KiB
PHP
55 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature;
|
|
|
|
use Tests\TestCase;
|
|
|
|
class ResponsivePaystackSheetTest extends TestCase
|
|
{
|
|
public function test_checkout_sheet_partial_has_mobile_sheet_and_desktop_modal(): void
|
|
{
|
|
$html = view('partials.paystack-sheet', [
|
|
'audience' => 'buyer',
|
|
])->render();
|
|
|
|
$this->assertStringContainsString('role="dialog"', $html);
|
|
$this->assertStringContainsString('aria-modal="true"', $html);
|
|
$this->assertStringContainsString('data-ladill-pay-sheet', $html);
|
|
$this->assertStringContainsString('data-ladill-pay-panel', $html);
|
|
$this->assertStringContainsString('data-ladill-pay-backdrop', $html);
|
|
$this->assertStringContainsString('data-ladill-pay-handle', $html);
|
|
$this->assertStringContainsString('data-ladill-pay-continue', $html);
|
|
$this->assertStringContainsString('md:items-center', $html);
|
|
$this->assertStringContainsString('rounded-t-2xl', $html);
|
|
$this->assertStringContainsString('md:rounded-2xl', $html);
|
|
$this->assertStringContainsString('md:max-w-lg', $html);
|
|
$this->assertStringContainsString('Complete your payment', $html);
|
|
$this->assertStringContainsString('safe-area-inset-bottom', $html);
|
|
$this->assertStringContainsString('LadillPayCheckout', $html);
|
|
$this->assertStringContainsString('Continue to Paystack', $html);
|
|
$this->assertStringContainsString('Starting secure checkout', $html);
|
|
$this->assertStringContainsString('prepare:', $html);
|
|
$this->assertStringNotContainsString('hidden w-full max-w-lg', $html);
|
|
$this->assertStringNotContainsString('Paystack checkout', $html);
|
|
}
|
|
|
|
public function test_payment_return_escapes_popup_and_iframe_to_opener_or_top(): void
|
|
{
|
|
$view = view()->exists('partials.payment-return')
|
|
? 'partials.payment-return'
|
|
: 'public.payment-return';
|
|
|
|
$html = view($view, [
|
|
'redirect' => 'https://example.test/paid',
|
|
])->render();
|
|
|
|
$this->assertStringContainsString('Confirming your payment', $html);
|
|
$this->assertStringContainsString('window.opener', $html);
|
|
$this->assertStringContainsString('window.top.location.replace', $html);
|
|
$this->assertTrue(
|
|
str_contains($html, 'https://example.test/paid')
|
|
|| str_contains($html, 'https:\/\/example.test\/paid')
|
|
);
|
|
}
|
|
}
|