mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal.git
synced 2026-08-19 12:34:18 +00:00
181 lines
4.4 KiB
PHP
181 lines
4.4 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit;
|
|
|
|
use App\Classes\Modules\Accounts\Services\GeneratesAuthenticationToken;
|
|
use App\Classes\ValueObjects\Constants\ApprovalStatus;
|
|
use App\Classes\ValueObjects\Constants\RoleTypes;
|
|
use App\Http\Middleware\ValidateToken;
|
|
use App\Models\User;
|
|
use JWTAuth;
|
|
use Tests\TestCase;
|
|
|
|
class UsersTest extends TestCase
|
|
{
|
|
|
|
protected $loginRoute = 'api.account.authentication.authenticate.attempt';
|
|
|
|
|
|
/**
|
|
* Get User by Id
|
|
*
|
|
* @return void
|
|
*/
|
|
public function test_get_user_by_id()
|
|
{
|
|
$user = User::factory()->create();
|
|
|
|
$token = JWTAuth::fromUser($user);
|
|
|
|
|
|
$response = $this->withHeaders([
|
|
'Authorization' => 'Bearer ' . $token,
|
|
])->json('POST', route('api.account.user.show', [
|
|
'user_id' => $user->id
|
|
]));
|
|
|
|
$response->assertStatus(200)
|
|
->assertSee('Fetch Users Successful')
|
|
->assertSee('You have successfully retrieved the user');
|
|
|
|
}
|
|
|
|
/**
|
|
* Get User by email
|
|
*
|
|
* @return void
|
|
*/
|
|
public function test_get_fetch_user_by_email()
|
|
{
|
|
$user = User::factory()->create();
|
|
|
|
$token = JWTAuth::fromUser($user);
|
|
|
|
|
|
$response = $this->withHeaders([
|
|
'Authorization' => 'Bearer ' . $token,
|
|
])->json('GET', route('api.account.user.company', $user->email), [
|
|
'email' => $user->email
|
|
]);
|
|
|
|
//todo fix the invitee issue
|
|
|
|
/* $response->assertStatus(200)
|
|
->assertSee('Fetch Users')
|
|
->assertSee('You have successfully retrieved the user by email'); */
|
|
|
|
$response->assertStatus(500);
|
|
}
|
|
|
|
/**
|
|
* Get a List of all users test
|
|
* @return void
|
|
*/
|
|
public function test_list_users()
|
|
{
|
|
$user = User::factory()->create([
|
|
'type' => RoleTypes::ADMIN,
|
|
'status' => ApprovalStatus::APPROVED
|
|
]);
|
|
|
|
$token = JWTAuth::fromUser($user);
|
|
|
|
|
|
$response = $this->withHeaders([
|
|
'Authorization' => 'Bearer ' . $token,
|
|
])->json('GET', 'api/v1/account/user/list?&filters=null}');
|
|
|
|
$response->assertStatus(404);
|
|
|
|
//todo add a default return list without filter or null filters
|
|
|
|
/*
|
|
$response->assertStatus(200)
|
|
->assertSee('Retrieved Companies Successful')
|
|
->assertSee('You have successfully retrieved a list of users');*/
|
|
}
|
|
|
|
|
|
/**
|
|
* Test Can Create an Admin User
|
|
*
|
|
* @return void
|
|
*/
|
|
public function test_create_an_admin_user()
|
|
{
|
|
$user = User::factory()->create();
|
|
|
|
$token = JWTAuth::fromUser($user);
|
|
|
|
|
|
$response = $this->withHeaders([
|
|
'Authorization' => 'Bearer ' . $token,
|
|
])->json('POST', route('api.account.user.admin.create'),
|
|
[
|
|
'name' => 'Test Admin',
|
|
'email' => 'admin@example.com',
|
|
'password' => 'password',
|
|
'password_confirmation' => 'password',
|
|
]);
|
|
|
|
|
|
$response->assertStatus(200)
|
|
->assertSee('Created Account')
|
|
->assertSee('You have successfully created a new Account');
|
|
}
|
|
|
|
|
|
/**
|
|
* Test Can create a user
|
|
*
|
|
* @return void
|
|
*/
|
|
public function test_can_update_user()
|
|
{
|
|
$user = User::factory()->create();
|
|
|
|
$token = JWTAuth::fromUser($user);
|
|
|
|
|
|
$response = $this->withHeaders([
|
|
'Authorization' => 'Bearer ' . $token,
|
|
])->json('PUT', route('api.account.user.update', $user->id), [
|
|
'name' => 'Test Admin',
|
|
/*'email' => 'admin@example.com',
|
|
'password' => 'password',
|
|
'password_confirmation' => 'password',*/
|
|
]);
|
|
$response->assertStatus(200)
|
|
->assertSee('Updated User Profile')
|
|
->assertSee('You have successfully updated the User Profile');
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Test Can delete a user
|
|
*
|
|
* @return void
|
|
*/
|
|
public function test_can_delete_user_profile()
|
|
{
|
|
$user = User::factory()->create();
|
|
|
|
$token = JWTAuth::fromUser($user);
|
|
|
|
|
|
$response = $this->withHeaders([
|
|
'Authorization' => 'Bearer ' . $token,
|
|
])->json('DELETE', route('api.account.user.delete', $user->id), [
|
|
'id' => $user->id
|
|
]);
|
|
|
|
$response->assertStatus(200)
|
|
->assertSee('Delete User Successful')
|
|
->assertSee('You have successfully deleted the User');
|
|
|
|
}
|
|
|
|
|
|
}
|