mirror of
https://github.com/flarum/core.git
synced 2025-07-16 14:26:25 +02:00
Integration tests: Add lazy server helper
This allows sending requests directly in an integration test, without having *explicitly* booted the app.
This commit is contained in:
@ -16,6 +16,7 @@ use Laminas\Diactoros\CallbackStream;
|
|||||||
use Laminas\Diactoros\ServerRequest;
|
use Laminas\Diactoros\ServerRequest;
|
||||||
use Psr\Http\Message\ResponseInterface;
|
use Psr\Http\Message\ResponseInterface;
|
||||||
use Psr\Http\Message\ServerRequestInterface;
|
use Psr\Http\Message\ServerRequestInterface;
|
||||||
|
use Psr\Http\Server\RequestHandlerInterface;
|
||||||
|
|
||||||
abstract class TestCase extends \PHPUnit\Framework\TestCase
|
abstract class TestCase extends \PHPUnit\Framework\TestCase
|
||||||
{
|
{
|
||||||
@ -24,11 +25,6 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
|
|||||||
*/
|
*/
|
||||||
protected $app;
|
protected $app;
|
||||||
|
|
||||||
/**
|
|
||||||
* @var \Psr\Http\Server\RequestHandlerInterface
|
|
||||||
*/
|
|
||||||
protected $server;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Flarum\Foundation\InstalledApp
|
* @return \Flarum\Foundation\InstalledApp
|
||||||
*/
|
*/
|
||||||
@ -52,6 +48,20 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
|
|||||||
return $this->app;
|
return $this->app;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var RequestHandlerInterface
|
||||||
|
*/
|
||||||
|
protected $server;
|
||||||
|
|
||||||
|
protected function server(): RequestHandlerInterface
|
||||||
|
{
|
||||||
|
if (is_null($this->server)) {
|
||||||
|
$this->server = $this->app()->getRequestHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->server;
|
||||||
|
}
|
||||||
|
|
||||||
protected $database;
|
protected $database;
|
||||||
|
|
||||||
protected function database(): ConnectionInterface
|
protected function database(): ConnectionInterface
|
||||||
@ -103,7 +113,7 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
|
|||||||
*/
|
*/
|
||||||
protected function send(ServerRequestInterface $request): ResponseInterface
|
protected function send(ServerRequestInterface $request): ResponseInterface
|
||||||
{
|
{
|
||||||
return $this->server->handle($request);
|
return $this->server()->handle($request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user