39 lines
1.4 KiB
PHP
39 lines
1.4 KiB
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
require __DIR__ . '/../vendor/autoload.php';
|
|
|
|
use app\miniapi\service\CustomerCenter\CustomerCenterService;
|
|
|
|
function customerCenterProxyAssertSame(mixed $expected, mixed $actual, string $message): void
|
|
{
|
|
if ($expected !== $actual) {
|
|
throw new RuntimeException($message . PHP_EOL
|
|
. 'Expected: ' . var_export($expected, true) . PHP_EOL
|
|
. 'Actual: ' . var_export($actual, true));
|
|
}
|
|
}
|
|
|
|
$service = new CustomerCenterService();
|
|
customerCenterProxyAssertSame([
|
|
'user_id' => 42,
|
|
'page' => 2,
|
|
], $service->payload(42, ['page' => 2]), 'The proxy request must use the original unsigned parameter style');
|
|
customerCenterProxyAssertSame(
|
|
'https://uniuser.jzvisa.com/home/customer_center/applications',
|
|
$service->endpoint('https://uniuser.jzvisa.com/home/users/userLogin', 'applications'),
|
|
'The proxy endpoint must stay on the configured unified API host'
|
|
);
|
|
customerCenterProxyAssertSame(
|
|
'https://uniuser.jzvisa.com/home/customer_center/applicants',
|
|
$service->endpoint('https://uniuser.jzvisa.com/home/users/userLogin/', 'applicants'),
|
|
'The proxy endpoint must accept the trailing slash used by the site configuration'
|
|
);
|
|
customerCenterProxyAssertSame(
|
|
'',
|
|
$service->endpoint('https://example.com/unexpected', 'applications'),
|
|
'Unexpected user API URLs must fail closed'
|
|
);
|
|
|
|
echo "Customer center proxy self-check passed\n";
|