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 (): void { $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); });