mirror of
https://github.com/flarum/core.git
synced 2025-07-21 08:41:17 +02:00
Integration tests: Memoize request handler as well
This is useful to send HTTP requests (or their PSR-7 equivalents) through the entire application's middleware stack (instead of talking to specific controllers, which should be considered implementation detail).
This commit is contained in:
@@ -24,17 +24,22 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
|
|||||||
$this->app();
|
$this->app();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \Flarum\Foundation\InstalledApp
|
||||||
|
*/
|
||||||
protected $app;
|
protected $app;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \Psr\Http\Server\RequestHandlerInterface
|
||||||
|
*/
|
||||||
|
protected $server;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Flarum\Foundation\InstalledApp
|
* @return \Flarum\Foundation\InstalledApp
|
||||||
*/
|
*/
|
||||||
protected function app()
|
protected function app()
|
||||||
{
|
{
|
||||||
if (! is_null($this->app)) {
|
if (is_null($this->app)) {
|
||||||
return $this->app;
|
|
||||||
}
|
|
||||||
|
|
||||||
$site = new InstalledSite(
|
$site = new InstalledSite(
|
||||||
[
|
[
|
||||||
'base' => __DIR__.'/tmp',
|
'base' => __DIR__.'/tmp',
|
||||||
@@ -44,7 +49,11 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
|
|||||||
include __DIR__.'/tmp/config.php'
|
include __DIR__.'/tmp/config.php'
|
||||||
);
|
);
|
||||||
|
|
||||||
return $this->app = $site->bootApp();
|
$this->app = $site->bootApp();
|
||||||
|
$this->server = $this->app->getRequestHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->app;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected $database;
|
protected $database;
|
||||||
|
Reference in New Issue
Block a user