1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
<?php
namespace Illuminate\Tests\Integration\Http;
use Illuminate\Http\Client\Events\RequestSending;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Facade;
use Illuminate\Support\Facades\Http;
use Orchestra\Testbench\TestCase;
class HttpClientTest extends TestCase
{
public function testGlobalMiddlewarePersistsBeforeWeDispatchEvent(): void
{
Event::fake();
Http::fake();
Http::globalRequestMiddleware(fn ($request) => $request->withHeader('User-Agent', 'Facade/1.0'));
Http::get('laravel.com');
Event::assertDispatched(RequestSending::class, function (RequestSending $event) {
return Collection::make($event->request->header('User-Agent'))->contains('Facade/1.0');
});
}
public function testGlobalMiddlewarePersistsAfterFacadeFlush(): void
{
Http::macro('getGlobalMiddleware', fn () => $this->globalMiddleware);
Http::globalRequestMiddleware(fn ($request) => $request->withHeader('User-Agent', 'Example Application/1.0'));
Http::globalRequestMiddleware(fn ($request) => $request->withHeader('User-Agent', 'Example Application/1.0'));
$this->assertCount(2, Http::getGlobalMiddleware());
Facade::clearResolvedInstances();
$this->assertCount(2, Http::getGlobalMiddleware());
}
}
|