forked from apoloz/alfa-bank-sdk
38 lines
1.2 KiB
PHP
38 lines
1.2 KiB
PHP
<?php
|
|
|
|
use Apoloz\AlfaBank\Utils\Uuid;
|
|
use Apoloz\AlfaBank\Http\Middleware\RequestIdMiddleware;
|
|
use Saloon\Http\PendingRequest;
|
|
use Saloon\Http\Request;
|
|
use Saloon\Enums\Method;
|
|
|
|
test('it generates valid uuid v4', function () {
|
|
$uuid = Uuid::v4();
|
|
|
|
expect($uuid)->toBeString()
|
|
->and(strlen($uuid))->toBe(36)
|
|
->and(preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/', $uuid))->toBe(1);
|
|
});
|
|
|
|
test('middleware adds uuid to request', function () {
|
|
$middleware = new RequestIdMiddleware();
|
|
|
|
$request = new class extends Request {
|
|
protected Method $method = Method::GET;
|
|
public function resolveEndpoint(): string { return '/'; }
|
|
};
|
|
|
|
$connector = new class extends \Saloon\Http\Connector {
|
|
public function resolveBaseUrl(): string { return 'https://test'; }
|
|
};
|
|
|
|
$pendingRequest = new PendingRequest($connector, $request);
|
|
|
|
$middleware($pendingRequest);
|
|
|
|
$header = $pendingRequest->headers()->get('X-Request-ID');
|
|
|
|
expect($header)->toBeString()
|
|
->and(preg_match('/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/', $header))->toBe(1);
|
|
});
|