mirror of
https://github.com/flarum/core.git
synced 2025-08-10 02:17:37 +02:00
Make integration tests independent
This creates a dedicated test suite for integration tests. All of them can be run independently, and there is no order dependency - previously, all integration tests needed the installer test to run first, and they would fail if installation failed. Now, the developer will have to set up a Flarum database to be used by these tests. A setup script to make this simple will be added in the next commit. Small tradeoff: the installer is NOT tested in our test suite anymore, only implicitly through the setup script. If we decide that this is a problem, we can still set up separate, dedicated installer tests which should probably test the web installer.
This commit is contained in:
@@ -11,8 +11,10 @@
|
||||
|
||||
namespace Flarum\Tests\integration\api\Controller;
|
||||
|
||||
use Flarum\Api\Client;
|
||||
use Flarum\Tests\integration\RetrievesAuthorizedUsers;
|
||||
use Flarum\Tests\integration\TestCase;
|
||||
use Flarum\User\Guest;
|
||||
use Flarum\User\User;
|
||||
use Illuminate\Support\Arr;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
@@ -46,9 +48,13 @@ abstract class ApiControllerTestCase extends TestCase
|
||||
);
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
public function call(string $controller, User $actor = null, array $queryParams = [], array $body = []): ResponseInterface
|
||||
{
|
||||
$this->actor = null;
|
||||
parent::tearDown();
|
||||
/** @var Client $api */
|
||||
$api = $this->app()->getContainer()->make(Client::class);
|
||||
|
||||
$api->setErrorHandler(null);
|
||||
|
||||
return $api->send($controller, $actor ?? new Guest, $queryParams, $body);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user