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:
@@ -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,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user