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

namespace Tests\Feature;

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

class ProductDeleteTest extends TestCase
{
    public function test_success_delete_retailer_by_admin()
    {
        $user = User::factory()->create([
            'role' => 'admin',
            'password' => Hash::make('123123123'),
        ]);
        $product = Product::factory()->create();
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $response = $this->delete('nova-api/products?filters=W10%3D&resources[]=' . $product->id);
        $user->delete();
        $response->assertStatus(200);
    }

    public function test_success_delete_retailer_by_analyst()
    {
        $user = User::factory()->create([
            'role' => 'analyst',
            'password' => Hash::make('123123123'),
        ]);
        $product = Product::factory()->create();
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $response = $this->delete('nova-api/products?filters=W10%3D&resources[]=' . $product->id);
        $user->delete();
        $response->assertStatus(200);
    }

    public function test_delete_retailer_by_common()
    {
        $user = User::factory()->create([
            'role' => 'common',
            'password' => Hash::make('123123123'),
        ]);
        Sanctum::actingAs(
            $user,
            ['*']
        );
        $product = Product::factory()->create();
        $response = $this->delete('nova-api/products?filters=W10%3D&resources[]=' . $product->id);
        $product->delete();
        $user->delete();
        $response->assertStatus(403);
    }

    public function test_delete_retailer_by_unauthenticate_user()
    {
        $product = Product::factory()->create();
        $response = $this->delete('nova-api/products?filters=W10%3D&resources[]=' . $product->id);
        $product->delete();
        $response->assertStatus(401);
    }
}