mirror of
https://gitlab.com/izyim/wetrack.git
synced 2026-08-19 04:23:57 +00:00
51 lines
1.4 KiB
PHP
51 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace Tests\Support;
|
|
|
|
use Database\Factories\UserFactory;
|
|
use Illuminate\Foundation\Testing\WithFaker;
|
|
use Illuminate\Testing\TestResponse;
|
|
|
|
trait WithLogin
|
|
{
|
|
use WithFaker;
|
|
|
|
/**
|
|
* Create a new user instance.
|
|
*/
|
|
private function validCredentials(array $attributes = null): array
|
|
{
|
|
$password = $this->faker->password(8);
|
|
$user = UserFactory::new($attributes);
|
|
$userEloquentModel = UserMapper::toEloquent($user);
|
|
$userEloquentModel->password = $password;
|
|
$userEloquentModel->save();
|
|
|
|
return [
|
|
'id' => $userEloquentModel->id,
|
|
'email' => $user->email,
|
|
'password' => $password,
|
|
];
|
|
}
|
|
|
|
private function newLoggedAdmin(): array
|
|
{
|
|
$credentials = $this->validCredentials(['is_admin' => true]);
|
|
$response = $this->post('auth/login', $credentials);
|
|
return ['token' => $this->getToken($response), ...$credentials];
|
|
}
|
|
|
|
private function newLoggedUser(): array
|
|
{
|
|
$credentials = $this->validCredentials(['is_admin' => false]);
|
|
$response = $this->post('auth/login', $credentials);
|
|
return ['token' => $this->getToken($response), ...$credentials];
|
|
}
|
|
|
|
private function getToken(TestResponse $response)
|
|
{
|
|
$arResponse = json_decode($response->getContent(), true);
|
|
return $arResponse['accessToken'];
|
|
}
|
|
}
|