Files
vuefilemanager/tests/App/Users/PersonalAccessTokenTest.php
Čarodej 19cc01131b - gate implementation
- protected shared view fix
2021-09-24 10:52:19 +02:00

118 lines
2.7 KiB
PHP

<?php
namespace Tests\App\Users;
use Tests\TestCase;
use App\Users\Models\User;
use Domain\Files\Models\File;
use Domain\Folders\Models\Folder;
class PersonalAccessTokenTest extends TestCase
{
/**
* @test
*/
public function it_create_user_token()
{
$user = User::factory(User::class)
->create();
$this
->actingAs($user)
->postJson('/api/user/tokens', [
'name' => 'token',
])
->assertStatus(201);
$this->assertDatabaseHas('personal_access_tokens', [
'tokenable_id' => $user->id,
'name' => 'token',
]);
}
/**
* @test
*/
public function it_revoke_user_token()
{
$user = User::factory(User::class)
->create();
$user->createToken('token');
$token_id = $user->tokens()->first()->id;
$this
->actingAs($user)
->deleteJson("/api/user/tokens/$token_id")
->assertStatus(204);
$this->assertDatabaseMissing('personal_access_tokens', [
'id' => $token_id,
]);
}
/**
* @test
*/
public function it_get_user_tokens()
{
$user = User::factory(User::class)
->create();
$user->createToken('token');
$token = $user->tokens()->first();
$this
->actingAs($user)
->getJson('/api/user/tokens')
->assertStatus(200)
->assertJsonFragment([
'id' => $token->id,
'tokenable_type' => $token->tokenable_type,
'tokenable_id' => $user->id,
'name' => $token->name,
'abilities' => $token->abilities,
]);
}
/**
* @test
*/
public function it_use_user_token_in_public_api_request()
{
$user = User::factory(User::class)
->create();
$folder = Folder::factory(Folder::class)
->create([
'user_id' => $user->id,
]);
$file = File::factory(File::class)
->create([
'user_id' => $user->id,
'parent_id' => $folder->id,
]);
$token = $user->createToken('token')->plainTextToken;
$this->assertDatabaseHas('personal_access_tokens', [
'tokenable_id' => $user->id,
]);
$this->assertDatabaseHas('folders', [
'id' => $folder->id,
'user_id' => $user->id,
]);
$this
->withToken($token)
->getJson("/api/browse/folders/$folder->id")
->assertOk()
->assertJsonFragment([
'id' => $file->id,
]);
}
}