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

namespace Tests\Feature;

Shizuco's avatar
Shizuco committed
use App\Models\Retailer;
use App\Models\User;
use Hash;
use Laravel\Sanctum\Sanctum;
Shizuco's avatar
Shizuco committed
use Tests\TestCase;

class RetailerDetailsTest extends TestCase
{
Shizuco's avatar
Shizuco committed
    public function test_success_access_to_retailer_details_by_admin()
Shizuco's avatar
Shizuco committed
    {
Shizuco's avatar
Shizuco committed
        $user = User::factory()->create([
            'role' => 'admin',
            'password' => Hash::make('123123123'),
        ]);
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $retailer = Retailer::factory()->create();
        $response = $this->get('/nova/resources/retailers/' . $retailer->id);
        $user->delete();
        $retailer->delete();
        $response->assertStatus(200);
    }
Shizuco's avatar
Shizuco committed
    public function test_success_access_to_retailer_details_by_analyst()
    {
        $user = User::factory()->create([
            'role' => 'analyst',
            'password' => Hash::make('123123123'),
        ]);
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $retailer = Retailer::factory()->create();
        $response = $this->get('/nova/resources/retailers/' . $retailer->id);
        $user->delete();
        $retailer->delete();
Shizuco's avatar
Shizuco committed
        $response->assertStatus(200);
    }
Shizuco's avatar
Shizuco committed

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

    public function test_access_to_retailers_detail_by_unauthorized()
    {
        $retailer = Retailer::factory()->create();
        $response = $this->get('/nova/resources/retailers/' . $retailer->id);
        $retailer->delete();
        $response->assertStatus(302);
    }
Shizuco's avatar
Shizuco committed
}