Skip to content
Snippets Groups Projects
Commit 391f1354 authored by Shizuco's avatar Shizuco
Browse files

feat: test for retailer creation

parent 8c514ef1
No related branches found
No related tags found
1 merge request!3Dctn 494/fix
<?php
namespace Tests\Feature;
use Illuminate\Support\Str;
use Laravel\Sanctum\Sanctum;
use Tests\TestCase;
use App\Models\User;
use App\Models\Retailer;
use Hash;
class RetailerCreateTest extends TestCase
{
public function test_success_create_category_by_admin()
{
$user = User::factory()->create([
'role' => 'admin',
'password' => Hash::make('123123123'),
]);
Sanctum::actingAs(
$user,
['*']
);
$response = $this->post('/nova-api/retailers?editing=true&editMode=create', [
'name' => 'test_name',
]);
$user->delete();
Retailer::where('name', 'test_name')->delete();
$response->assertStatus(201);
}
public function test_create_category_by_admin_without_name_of_category()
{
$user = User::factory()->create([
'role' => 'admin',
'password' => Hash::make('123123123'),
]);
Sanctum::actingAs(
$user,
['*']
);
$response = $this->post('/nova-api/retailers?editing=true&editMode=create', [
]);
$user->delete();
Retailer::where('name', 'test_name')->delete();
$response->assertStatus(302)->assertSessionHasErrors(['name' => 'The Name field is required.']);
}
public function test_create_category_by_admin_with_already_exist_name()
{
$user = User::factory()->create([
'role' => 'admin',
'password' => Hash::make('123123123'),
]);
Sanctum::actingAs(
$user,
['*']
);
$category = Retailer::factory()->create();
$response = $this->post('/nova-api/retailers?editing=true&editMode=create', [
'name' => $category->name
]);
$category->delete();
$user->delete();
Retailer::where('name', 'test_name')->delete();
$response->assertStatus(302)->assertSessionHasErrors([
'name' => 'The Name has already been taken.'
]);
}
public function test_success_create_category_by_analyst()
{
$user = User::factory()->create([
'role' => 'analyst',
'password' => Hash::make('123123123'),
]);
Sanctum::actingAs(
$user,
['*']
);
$response = $this->post('/nova-api/retailers?editing=true&editMode=create', [
'name' => 'test_name',
]);
$user->delete();
Retailer::where('name', 'test_name')->delete();
$response->assertStatus(201);
}
public function test_create_category_by_analyst_without_name_of_category()
{
$user = User::factory()->create([
'role' => 'analyst',
'password' => Hash::make('123123123'),
]);
Sanctum::actingAs(
$user,
['*']
);
$response = $this->post('/nova-api/retailers?editing=true&editMode=create', [
]);
$user->delete();
Retailer::where('name', 'test_name')->delete();
$response->assertStatus(302)->assertSessionHasErrors(['name' => 'The Name field is required.']);
}
public function test_create_category_by_analyst_with_already_exist_name()
{
$user = User::factory()->create([
'role' => 'analyst',
'password' => Hash::make('123123123'),
]);
Sanctum::actingAs(
$user,
['*']
);
$category = Retailer::factory()->create();
$response = $this->post('/nova-api/retailers?editing=true&editMode=create', [
'name' => $category->name
]);
$category->delete();
$user->delete();
Retailer::where('name', 'test_name')->delete();
$response->assertStatus(302)->assertSessionHasErrors([
'name' => 'The Name has already been taken.'
]);
}
public function test_create_category_by_common()
{
$user = User::factory()->create([
'role' => 'common',
'password' => Hash::make('123123123'),
]);
Sanctum::actingAs(
$user,
['*']
);
$response = $this->post('/nova-api/retailers?editing=true&editMode=create', [
'name' => 'test_name',
]);
$user->delete();
Retailer::where('name', 'test_name')->delete();
$response->assertStatus(403);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment