Add test coverage and fix permissions mistake

This commit is contained in:
DaneEveritt 2022-05-15 17:30:57 -04:00
parent 8483db755d
commit d4bf6bd46a
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
4 changed files with 282 additions and 32 deletions

View file

@ -7,6 +7,7 @@ use Pterodactyl\Models\Egg;
use Pterodactyl\Models\Node;
use Pterodactyl\Models\User;
use Pterodactyl\Models\Server;
use Pterodactyl\Models\Subuser;
use Pterodactyl\Models\Location;
use Pterodactyl\Models\Allocation;
@ -76,6 +77,35 @@ trait CreatesTestModels
]);
}
/**
* Generates a user and a server for that user. If an array of permissions is passed it
* is assumed that the user is actually a subuser of the server.
*
* @param string[] $permissions
*
* @return array{\Pterodactyl\Models\User, \Pterodactyl\Models\Server}
*/
public function generateTestAccount(array $permissions = []): array
{
/** @var \Pterodactyl\Models\User $user */
$user = User::factory()->create();
if (empty($permissions)) {
return [$user, $this->createServerModel(['user_id' => $user->id])];
}
/** @var \Pterodactyl\Models\Server $server */
$server = $this->createServerModel();
Subuser::query()->create([
'user_id' => $user->id,
'server_id' => $server->id,
'permissions' => $permissions,
]);
return [$user, $server];
}
/**
* Clones a given egg allowing us to make modifications that don't affect other
* tests that rely on the egg existing in the correct state.