Files
alfa-bank-sdk/tests/Feature/Utils/UuidTest.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);
});