Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?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);
}
}