Skip to content
Snippets Groups Projects
CategoryDetailsTest.php 1.97 KiB
Newer Older
Shizuco's avatar
Shizuco committed
<?php

namespace Tests\Feature;

use App\Models\Category;
use App\Models\User;
use Hash;
use Laravel\Sanctum\Sanctum;
use Tests\TestCase;

class CategoryDetailsTest extends TestCase
{
    public function test_success_access_to_category_details_by_admin()
    {
        $user = User::factory()->create([
            'role' => 'admin',
            'password' => Hash::make('123123123'),
        ]);
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $category = Category::factory()->create();
        $response = $this->get('/nova/resources/categories/' . $category->id);
        $user->delete();
        $category->delete();
        $response->assertStatus(200);
    }

    public function test_success_access_to_category_details_by_analyst()
    {
        $user = User::factory()->create([
            'role' => 'analyst',
            'password' => Hash::make('123123123'),
        ]);
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $category = Category::factory()->create();
        $response = $this->get('/nova/resources/categories/' . $category->id);
        $user->delete();
        $category->delete();
        $response->assertStatus(200);
    }

    public function test_access_to_category_detail_by_common()
    {
        $user = User::factory()->create([
            'role' => 'common',
            'password' => Hash::make('123123123'),
        ]);
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $category = Category::factory()->create();
        $response = $this->get('/nova/resources/categories/' . $category->id);
        $user->delete();
        $category->delete();
        $response->assertStatus(403);
    }

    public function test_access_to_retailers_detail_by_unauthorized()
    {
        $category = Category::factory()->create();
        $response = $this->get('/nova/resources/categories/' . $category->id);
        $category->delete();
        $response->assertStatus(302);
    }
}