mirror of
https://github.com/bitinflow/expose.git
synced 2026-03-13 13:35:54 +00:00
89 lines
2.7 KiB
PHP
89 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit;
|
|
|
|
use App\Logger\LoggedRequest;
|
|
use GuzzleHttp\Psr7\Request;
|
|
use function GuzzleHttp\Psr7\str;
|
|
use Laminas\Http\Request as LaminasRequest;
|
|
use Tests\TestCase;
|
|
|
|
class LoggedRequestTest extends TestCase
|
|
{
|
|
/** @test */
|
|
public function it_retrieves_the_request_id()
|
|
{
|
|
$rawRequest = str(new Request(200, '/expose', [
|
|
'X-Expose-Request-ID' => 'example-request',
|
|
]));
|
|
$parsedRequest = LaminasRequest::fromString($rawRequest);
|
|
|
|
$loggedRequest = new LoggedRequest($rawRequest, $parsedRequest);
|
|
$this->assertSame('example-request', $loggedRequest->id());
|
|
}
|
|
|
|
/** @test */
|
|
public function it_retrieves_the_request_for_chrome_extensions()
|
|
{
|
|
$rawRequest = str(new Request(200, '/expose', [
|
|
'Origin' => 'chrome-extension://expose',
|
|
'X-Expose-Request-ID' => 'example-request',
|
|
]));
|
|
$parsedRequest = LaminasRequest::fromString($rawRequest);
|
|
|
|
$loggedRequest = new LoggedRequest($rawRequest, $parsedRequest);
|
|
$this->assertSame('example-request', $loggedRequest->id());
|
|
}
|
|
|
|
/** @test */
|
|
public function it_returns_post_data_for_json_payloads()
|
|
{
|
|
$postData = [
|
|
'name' => 'Marcel',
|
|
'project' => 'expose',
|
|
];
|
|
|
|
$rawRequest = str(new Request(200, '/expose', [
|
|
'Content-Type' => 'application/json',
|
|
], json_encode($postData)));
|
|
$parsedRequest = LaminasRequest::fromString($rawRequest);
|
|
|
|
$loggedRequest = new LoggedRequest($rawRequest, $parsedRequest);
|
|
|
|
$this->assertSame([
|
|
[
|
|
'name' => 'name',
|
|
'value' => 'Marcel',
|
|
],
|
|
[
|
|
'name' => 'project',
|
|
'value' => 'expose',
|
|
],
|
|
], $loggedRequest->getPostData());
|
|
}
|
|
|
|
/** @test */
|
|
public function it_returns_the_raw_request()
|
|
{
|
|
$rawRequest = str(new Request(200, '/expose', [
|
|
'X-Expose-Request-ID' => 'example-request',
|
|
]));
|
|
$parsedRequest = LaminasRequest::fromString($rawRequest);
|
|
|
|
$loggedRequest = new LoggedRequest($rawRequest, $parsedRequest);
|
|
$this->assertSame($rawRequest, $loggedRequest->getRequestData());
|
|
}
|
|
|
|
/** @test */
|
|
public function it_returns_the_parsed_request()
|
|
{
|
|
$rawRequest = str(new Request(200, '/expose', [
|
|
'X-Expose-Request-ID' => 'example-request',
|
|
]));
|
|
$parsedRequest = LaminasRequest::fromString($rawRequest);
|
|
|
|
$loggedRequest = new LoggedRequest($rawRequest, $parsedRequest);
|
|
$this->assertSame($parsedRequest, $loggedRequest->getRequest());
|
|
}
|
|
}
|