1
0
mirror of https://github.com/flarum/core.git synced 2025-08-22 16:14:00 +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:
Franz Liedke
2019-01-30 21:15:27 +01:00
parent 4d10536d35
commit cf746079ed
22 changed files with 416 additions and 419 deletions

View File

@@ -11,27 +11,60 @@
namespace Flarum\Tests\integration;
use Flarum\User\User;
trait RetrievesAuthorizedUsers
{
protected $userAttributes = [
'username' => 'normal',
'password' => 'too-obscure',
'email' => 'normal@machine.local'
];
public function getAdminUser(): User
protected function adminGroup(): array
{
return User::find(1);
return [
'id' => 1,
'name_singular' => 'Admin',
'name_plural' => 'Admins',
'color' => '#B72A2A',
'icon' => 'fas fa-wrench',
];
}
public function getNormalUser(): User
protected function guestGroup(): array
{
return User::unguarded(function () {
return User::firstOrCreate([
'username' => $this->userAttributes['username']
], $this->userAttributes);
});
return [
'id' => 2,
'name_singular' => 'Guest',
'name_plural' => 'Guests',
'color' => null,
'icon' => null,
];
}
protected function memberGroup(): array
{
return [
'id' => 3,
'name_singular' => 'Member',
'name_plural' => 'Members',
'color' => null,
'icon' => null,
];
}
protected function adminUser(): array
{
return [
'id' => 1,
'username' => 'admin',
'password' => '$2y$10$HMOAe.XaQjOimA778VmFue1OCt7tj5j0wk5vfoL/CMSJq2BQlfBV2', // BCrypt hash for "password"
'email' => 'admin@machine.local',
'is_email_confirmed' => 1,
];
}
protected function normalUser(): array
{
return [
'id' => 2,
'username' => 'normal',
'password' => '$2y$10$LO59tiT7uggl6Oe23o/O6.utnF6ipngYjvMvaxo1TciKqBttDNKim', // BCrypt hash for "too-obscure"
'email' => 'normal@machine.local',
'is_email_confirmed' => 1,
];
}
}