From 2f45671c05844521bf5266139321289e23fd92e3 Mon Sep 17 00:00:00 2001 From: amirghasempoor Date: Mon, 18 Nov 2024 11:37:30 +0330 Subject: [PATCH] create two permissions for azmayesh panel --- routes/v3.php | 3 + storage/sql-files/permissions.sql | 2 + tests/Feature/V3/Azmayesh/DeleteTest.php | 18 ++- tests/Feature/V3/Azmayesh/IndexTest.php | 21 ++- tests/Feature/V3/Azmayesh/StoreTest.php | 124 ++++++++++++++--- tests/Feature/V3/Azmayesh/UpdateTest.php | 125 +++++++++++++++--- .../Feature/V3/AzmayeshSample/DeleteTest.php | 17 ++- tests/Feature/V3/AzmayeshSample/IndexTest.php | 22 ++- tests/Feature/V3/AzmayeshSample/StoreTest.php | 34 ++++- .../Feature/V3/AzmayeshSample/UpdateTest.php | 35 ++++- tests/Feature/V3/AzmayeshType/DeleteTest.php | 17 ++- tests/Feature/V3/AzmayeshType/FieldsTest.php | 17 ++- tests/Feature/V3/AzmayeshType/IndexTest.php | 21 ++- tests/Feature/V3/AzmayeshType/ListTest.php | 16 ++- tests/Feature/V3/AzmayeshType/ShowTest.php | 17 ++- tests/Feature/V3/AzmayeshType/StoreTest.php | 76 +++++++++-- tests/Feature/V3/AzmayeshType/UpdateTest.php | 78 +++++++++-- 17 files changed, 566 insertions(+), 77 deletions(-) diff --git a/routes/v3.php b/routes/v3.php index 8a43ad37..69abb65c 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -38,6 +38,7 @@ Route::prefix('profile') Route::prefix('azmayesh_types') ->name('azmayesh_types.') + ->middleware('can:azmayesh-type-management') ->controller(AzmayeshTypeController::class) ->group(function () { Route::get('/', 'index')->name('index'); @@ -51,6 +52,7 @@ Route::prefix('azmayesh_types') Route::prefix('azmayesh_samples') ->name('azmayesh_samples.') + ->middleware('can:azmayesh-management') ->controller(AzmayeshSampleController::class) ->group(function () { Route::get('/index/{azmayesh_id}', 'index')->name('index'); @@ -62,6 +64,7 @@ Route::prefix('azmayesh_samples') Route::prefix('azmayeshes') ->name('azmayeshes.') + ->middleware('can:azmayesh-management') ->controller(AzmayeshController::class) ->group(function () { Route::get('/', 'index')->name('index'); diff --git a/storage/sql-files/permissions.sql b/storage/sql-files/permissions.sql index 819a8445..a03a7003 100644 --- a/storage/sql-files/permissions.sql +++ b/storage/sql-files/permissions.sql @@ -133,3 +133,5 @@ INSERT INTO permissions (name,guard_name,name_fa,description,created_at,updated_ ('show-receipt','web','نمایش خسارت (کشوری)','نمایش خسارات کشوری',NULL,NULL,NULL,NULL,'receipt','خسارات وارد بر ابنیه فنی راه',0,0), ('show-receipt-province','web','نمایش خسارت (استانی)','نمایش خسارات استانی',NULL,NULL,NULL,NULL,'receipt','خسارات وارد بر ابنیه فنی راه',1,0), ('supervise-road-item-by-edareostani','web','نظارت بر ثبت فعالیت روزانه و جاری(ادارات استانی)',NULL,'2023-07-09 09:48:35','2023-07-09 09:48:37',NULL,NULL,'road-item','فعالیت روزانه',0,0); + ('azmayesh-management','web','مدیریت آزمایشات',NULL,'2024-11-18 09:48:35','2024-11-18 09:48:35',NULL,NULL,'azmayesh','آزمایشات',0,0); + ('azmayesh-type-management','web','مدیریت نوع آزمایشات',NULL,'2024-11-18 09:48:35','2024-11-18 09:48:35',NULL,NULL,'azmayesh','آزمایشات',0,0); diff --git a/tests/Feature/V3/Azmayesh/DeleteTest.php b/tests/Feature/V3/Azmayesh/DeleteTest.php index cafa4f74..04b819ab 100644 --- a/tests/Feature/V3/Azmayesh/DeleteTest.php +++ b/tests/Feature/V3/Azmayesh/DeleteTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\V3\Azmayesh; use App\Models\Azmayesh; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -14,13 +15,28 @@ class DeleteTest extends TestCase /** * A basic feature test example. */ - public function test_user_can_delete_azmayesh(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.delete', [$azmayesh->id])); + $response->assertForbidden(); + } + + public function test_user_can_delete_azmayesh(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + + $azmayesh = Azmayesh::factory()->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.delete', [$azmayesh->id])); + $response->assertOk(); $this->assertDatabaseMissing('azmayeshes', [ diff --git a/tests/Feature/V3/Azmayesh/IndexTest.php b/tests/Feature/V3/Azmayesh/IndexTest.php index eae71b0c..cb525109 100644 --- a/tests/Feature/V3/Azmayesh/IndexTest.php +++ b/tests/Feature/V3/Azmayesh/IndexTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\V3\Azmayesh; use App\Models\Azmayesh; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -14,10 +15,28 @@ class IndexTest extends TestCase /** * A basic feature test example. */ - public function test_all_azmayeshes_returned_successfully(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); + $response = $this->actingAs($user)->getJson(route('v3.azmayeshes.index', [ + 'start' => 0, + 'size' => 10, + 'filters' => json_encode([]), + 'sorting' => json_encode([]), + ])); + + $response->assertForbidden(); + } + + public function test_all_azmayeshes_returned_successfully(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + Azmayesh::factory(5)->create(); $response = $this->actingAs($user)->getJson(route('v3.azmayeshes.index', [ diff --git a/tests/Feature/V3/Azmayesh/StoreTest.php b/tests/Feature/V3/Azmayesh/StoreTest.php index 6ee556cf..9f1d71ea 100644 --- a/tests/Feature/V3/Azmayesh/StoreTest.php +++ b/tests/Feature/V3/Azmayesh/StoreTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\V3\Azmayesh; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\Province; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -15,12 +16,25 @@ class StoreTest extends TestCase /** * A basic feature test example. */ - public function test_lat_attribute_is_required(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store')); + $response->assertForbidden(); + } + + public function test_lat_attribute_is_required(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store')); + $response->assertUnprocessable() ->assertInvalid([ 'lat' => __('validation.required', ['attribute' => 'طول جغرافیایی']) @@ -29,7 +43,11 @@ class StoreTest extends TestCase public function test_lat_attribute_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'lat' => $this->faker->numberBetween(1, 10) @@ -43,7 +61,11 @@ class StoreTest extends TestCase public function test_lng_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store')); @@ -55,7 +77,11 @@ class StoreTest extends TestCase public function test_lng_attribute_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'lng' => $this->faker->numberBetween(1, 10) @@ -69,7 +95,11 @@ class StoreTest extends TestCase public function test_azmayesh_type_id_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store')); @@ -81,7 +111,11 @@ class StoreTest extends TestCase public function test_azmayesh_type_id_attribute_should_exist_on_azmayesh_types_table(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'azmayesh_type_id' => $this->faker->numberBetween(10, 100) @@ -95,7 +129,11 @@ class StoreTest extends TestCase public function test_request_date_attribute_should_be_date_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'request_date' => $this->faker->lexify @@ -109,7 +147,11 @@ class StoreTest extends TestCase public function test_report_date_attribute_should_be_date_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'report_date' => $this->faker->lexify @@ -123,7 +165,11 @@ class StoreTest extends TestCase public function test_request_number_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'request_number' => $this->faker->numberBetween(1, 10) @@ -137,7 +183,11 @@ class StoreTest extends TestCase public function test_employer_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'employer' => $this->faker->numberBetween(1, 10) @@ -151,7 +201,11 @@ class StoreTest extends TestCase public function test_contractor_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'contractor' => $this->faker->numberBetween(1, 10) @@ -165,7 +219,11 @@ class StoreTest extends TestCase public function test_work_number_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'work_number' => $this->faker->numberBetween(1, 10) @@ -179,7 +237,11 @@ class StoreTest extends TestCase public function test_project_name_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store')); @@ -191,7 +253,11 @@ class StoreTest extends TestCase public function test_project_name_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'project_name' => $this->faker->numberBetween(1, 10) @@ -205,7 +271,11 @@ class StoreTest extends TestCase public function test_consultant_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'consultant' => $this->faker->numberBetween(1, 10) @@ -219,7 +289,11 @@ class StoreTest extends TestCase public function test_applicant_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'applicant' => $this->faker->numberBetween(1, 10) @@ -233,7 +307,11 @@ class StoreTest extends TestCase public function test_province_id_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store')); @@ -245,7 +323,11 @@ class StoreTest extends TestCase public function test_province_id_attribute_should_exists_on_province_table(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.store'), [ 'province_id' => $this->faker->numberBetween(10, 100) @@ -259,7 +341,11 @@ class StoreTest extends TestCase public function test_user_can_store_a_new_azmayesh(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $province = Province::factory()->create(); $azmayeshType = AzmayeshType::factory()->create(); diff --git a/tests/Feature/V3/Azmayesh/UpdateTest.php b/tests/Feature/V3/Azmayesh/UpdateTest.php index b20a0d8e..9a51ecb3 100644 --- a/tests/Feature/V3/Azmayesh/UpdateTest.php +++ b/tests/Feature/V3/Azmayesh/UpdateTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\V3\Azmayesh; use App\Models\Azmayesh; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\Province; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -16,13 +17,27 @@ class UpdateTest extends TestCase /** * A basic feature test example. */ - public function test_lat_attribute_is_required(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id])); + $response->assertForbidden(); + } + + public function test_lat_attribute_is_required(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + $azmayesh = Azmayesh::factory()->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id])); + $response->assertUnprocessable() ->assertInvalid([ 'lat' => __('validation.required', ['attribute' => 'طول جغرافیایی']) @@ -31,7 +46,11 @@ class UpdateTest extends TestCase public function test_lat_attribute_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -46,7 +65,11 @@ class UpdateTest extends TestCase public function test_lng_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id])); @@ -59,7 +82,11 @@ class UpdateTest extends TestCase public function test_lng_attribute_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -74,7 +101,11 @@ class UpdateTest extends TestCase public function test_azmayesh_type_id_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id])); @@ -87,7 +118,11 @@ class UpdateTest extends TestCase public function test_azmayesh_type_id_attribute_should_exist_on_azmayesh_types_table(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -102,7 +137,11 @@ class UpdateTest extends TestCase public function test_request_date_attribute_should_be_date_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -117,7 +156,11 @@ class UpdateTest extends TestCase public function test_report_date_attribute_should_be_date_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -132,7 +175,11 @@ class UpdateTest extends TestCase public function test_request_number_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -147,7 +194,11 @@ class UpdateTest extends TestCase public function test_employer_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -162,7 +213,11 @@ class UpdateTest extends TestCase public function test_contractor_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -177,7 +232,11 @@ class UpdateTest extends TestCase public function test_work_number_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -192,7 +251,11 @@ class UpdateTest extends TestCase public function test_project_name_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id])); @@ -205,7 +268,11 @@ class UpdateTest extends TestCase public function test_project_name_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -220,7 +287,11 @@ class UpdateTest extends TestCase public function test_consultant_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -235,7 +306,11 @@ class UpdateTest extends TestCase public function test_applicant_attribute_should_be_string_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -250,7 +325,11 @@ class UpdateTest extends TestCase public function test_province_id_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id])); @@ -263,7 +342,11 @@ class UpdateTest extends TestCase public function test_province_id_attribute_should_exists_on_province_table(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayeshes.update', [$azmayesh->id]), [ @@ -278,7 +361,11 @@ class UpdateTest extends TestCase public function test_user_can_update_the_azmayesh(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $province = Province::factory()->create(); $azmayeshType = AzmayeshType::factory()->create(); $azmayesh = Azmayesh::factory()->create(); diff --git a/tests/Feature/V3/AzmayeshSample/DeleteTest.php b/tests/Feature/V3/AzmayeshSample/DeleteTest.php index ac901f6e..bc99d51d 100644 --- a/tests/Feature/V3/AzmayeshSample/DeleteTest.php +++ b/tests/Feature/V3/AzmayeshSample/DeleteTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\V3\AzmayeshSample; use App\Models\Azmayesh; use App\Models\AzmayeshSample; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -15,13 +16,27 @@ class DeleteTest extends TestCase /** * A basic feature test example. */ - public function test_user_can_delete_azmayesh_sample(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); $azmayeshSample = AzmayeshSample::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.delete', [$azmayeshSample->id])); + $response->assertForbidden(); + } + + public function test_user_can_delete_azmayesh_sample(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + $azmayeshSample = AzmayeshSample::factory()->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.delete', [$azmayeshSample->id])); + $response->assertOk(); $this->assertDatabaseMissing('azmayesh_samples', [ diff --git a/tests/Feature/V3/AzmayeshSample/IndexTest.php b/tests/Feature/V3/AzmayeshSample/IndexTest.php index 4a447d99..59b17fbc 100644 --- a/tests/Feature/V3/AzmayeshSample/IndexTest.php +++ b/tests/Feature/V3/AzmayeshSample/IndexTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\V3\AzmayeshSample; use App\Models\Azmayesh; use App\Models\AzmayeshSample; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -15,10 +16,29 @@ class IndexTest extends TestCase /** * A basic feature test example. */ - public function test_all_azmayesh_samples_returned_successfully(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); + $response = $this->actingAs($user)->getJson(route('v3.azmayesh_samples.index', [ + 1, + 'start' => 0, + 'size' => 10, + 'filters' => json_encode([]), + 'sorting' => json_encode([]), + ])); + + $response->assertForbidden(); + } + + public function test_all_azmayesh_samples_returned_successfully(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + Azmayesh::factory(5) ->sequence( ['id' => 1], diff --git a/tests/Feature/V3/AzmayeshSample/StoreTest.php b/tests/Feature/V3/AzmayeshSample/StoreTest.php index 25772e48..b6fffa55 100644 --- a/tests/Feature/V3/AzmayeshSample/StoreTest.php +++ b/tests/Feature/V3/AzmayeshSample/StoreTest.php @@ -5,6 +5,7 @@ namespace Tests\Feature\V3\AzmayeshSample; use App\Models\Azmayesh; use App\Models\AzmayeshSample; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\Province; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; @@ -17,12 +18,25 @@ class StoreTest extends TestCase /** * A basic feature test example. */ - public function test_azmayesh_id_attribute_is_required(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.store')); + $response->assertForbidden(); + } + + public function test_azmayesh_id_attribute_is_required(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.store')); + $response->assertUnprocessable() ->assertInvalid([ 'azmayesh_id' => __('validation.required', ['attribute' => 'آزمایش']) @@ -31,7 +45,11 @@ class StoreTest extends TestCase public function test_azmayesh_id_attribute_should_exists_on_azmayeshes_table(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.store'), [ 'azmayesh_id' => $this->faker->numberBetween(10, 100) @@ -45,7 +63,11 @@ class StoreTest extends TestCase public function test_data_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.store')); @@ -57,7 +79,11 @@ class StoreTest extends TestCase public function test_user_can_store_a_new_azmayesh_sample(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $data = [ diff --git a/tests/Feature/V3/AzmayeshSample/UpdateTest.php b/tests/Feature/V3/AzmayeshSample/UpdateTest.php index 1ec0f42e..542fb97f 100644 --- a/tests/Feature/V3/AzmayeshSample/UpdateTest.php +++ b/tests/Feature/V3/AzmayeshSample/UpdateTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\V3\AzmayeshSample; use App\Models\Azmayesh; use App\Models\AzmayeshSample; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -15,13 +16,27 @@ class UpdateTest extends TestCase /** * A basic feature test example. */ - public function test_azmayesh_id_attribute_is_required(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); $azmayeshSample = AzmayeshSample::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.update', [$azmayeshSample->id])); + $response->assertForbidden(); + } + + public function test_azmayesh_id_attribute_is_required(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); + $azmayeshSample = AzmayeshSample::factory()->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.update', [$azmayeshSample->id])); + $response->assertUnprocessable() ->assertInvalid([ 'azmayesh_id' => __('validation.required', ['attribute' => 'آزمایش']) @@ -30,7 +45,11 @@ class UpdateTest extends TestCase public function test_azmayesh_id_attribute_should_exists_on_azmayeshes_table(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayeshSample = AzmayeshSample::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.update', [$azmayeshSample->id]), [ @@ -45,7 +64,11 @@ class UpdateTest extends TestCase public function test_data_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayeshSample = AzmayeshSample::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_samples.update', [$azmayeshSample->id])); @@ -58,7 +81,11 @@ class UpdateTest extends TestCase public function test_user_can_update_the_azmayesh_sample(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-management' + ])) + ->create(); $azmayesh = Azmayesh::factory()->create(); $azmayeshSample = AzmayeshSample::factory()->create(); diff --git a/tests/Feature/V3/AzmayeshType/DeleteTest.php b/tests/Feature/V3/AzmayeshType/DeleteTest.php index 05b49035..aaaad978 100644 --- a/tests/Feature/V3/AzmayeshType/DeleteTest.php +++ b/tests/Feature/V3/AzmayeshType/DeleteTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\V3\AzmayeshType; use App\Models\AzmayeshField; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -15,9 +16,23 @@ class DeleteTest extends TestCase /** * A basic feature test example. */ - public function test_user_can_delete_azmayesh_type(): void + public function test_user_should_have_azmayesh_type_management_permission(): void { $user = User::factory()->create(); + $azmayeshType = AzmayeshType::factory()->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.delete', [$azmayeshType->id])); + + $response->assertForbidden(); + } + + public function test_user_can_delete_azmayesh_type(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $azmayeshField = AzmayeshField::factory()->create(); diff --git a/tests/Feature/V3/AzmayeshType/FieldsTest.php b/tests/Feature/V3/AzmayeshType/FieldsTest.php index 7e4832ff..51985190 100644 --- a/tests/Feature/V3/AzmayeshType/FieldsTest.php +++ b/tests/Feature/V3/AzmayeshType/FieldsTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\V3\AzmayeshType; use App\Models\AzmayeshField; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -15,6 +16,16 @@ class FieldsTest extends TestCase /** * A basic feature test example. */ + public function test_user_should_have_azmayesh_type_management_permission(): void + { + $user = User::factory()->create(); + $azmayeshType = AzmayeshType::factory()->create(); + + $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.fields', [$azmayeshType->id])); + + $response->assertForbidden(); + } + public function test_all_fields_for_azmayesh_types_returned_successfully(): void { AzmayeshField::factory(3) @@ -47,7 +58,11 @@ class FieldsTest extends TestCase $azmayeshType->azmayeshFields()->attach([1, 2, 3]); - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.fields', [$azmayeshType->id])); diff --git a/tests/Feature/V3/AzmayeshType/IndexTest.php b/tests/Feature/V3/AzmayeshType/IndexTest.php index d78ebe24..55e50b08 100644 --- a/tests/Feature/V3/AzmayeshType/IndexTest.php +++ b/tests/Feature/V3/AzmayeshType/IndexTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\V3\AzmayeshType; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -14,11 +15,29 @@ class IndexTest extends TestCase /** * A basic feature test example. */ + public function test_user_should_have_azmayesh_type_management_permission(): void + { + $user = User::factory()->create(); + + $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.index', [ + 'start' => 0, + 'size' => 10, + 'filters' => json_encode([]), + 'sorting' => json_encode([]), + ])); + + $response->assertForbidden(); + } + public function test_all_azmayesh_types_returned_successfully(): void { AzmayeshType::factory(5)->create(); - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.index', [ 'start' => 0, diff --git a/tests/Feature/V3/AzmayeshType/ListTest.php b/tests/Feature/V3/AzmayeshType/ListTest.php index 5aed890b..62caa7aa 100644 --- a/tests/Feature/V3/AzmayeshType/ListTest.php +++ b/tests/Feature/V3/AzmayeshType/ListTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\V3\AzmayeshType; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -14,11 +15,24 @@ class ListTest extends TestCase /** * A basic feature test example. */ + public function test_user_should_have_azmayesh_type_management_permission(): void + { + $user = User::factory()->create(); + + $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.list')); + + $response->assertForbidden(); + } + public function test_azmayesh_type_list_returned_successfully(): void { AzmayeshType::factory(5)->create(); - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.list')); diff --git a/tests/Feature/V3/AzmayeshType/ShowTest.php b/tests/Feature/V3/AzmayeshType/ShowTest.php index f682f9e8..318d4554 100644 --- a/tests/Feature/V3/AzmayeshType/ShowTest.php +++ b/tests/Feature/V3/AzmayeshType/ShowTest.php @@ -4,6 +4,7 @@ namespace Tests\Feature\V3\AzmayeshType; use App\Models\AzmayeshField; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -15,6 +16,16 @@ class ShowTest extends TestCase /** * A basic feature test example. */ + public function test_user_should_have_azmayesh_type_management_permission(): void + { + $user = User::factory()->create(); + $azmayeshType = AzmayeshType::factory()->create(); + + $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.show', [$azmayeshType->id])); + + $response->assertForbidden(); + } + public function test_azmayesh_type_details_returned_successfully(): void { $azmayeshType = AzmayeshType::factory()->create(); @@ -22,7 +33,11 @@ class ShowTest extends TestCase $azmayeshType->azmayeshFields()->attach([$azmayeshField->id]); - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->getJson(route('v3.azmayesh_types.show', [$azmayeshType->id])); diff --git a/tests/Feature/V3/AzmayeshType/StoreTest.php b/tests/Feature/V3/AzmayeshType/StoreTest.php index 18cee337..12d3e54b 100644 --- a/tests/Feature/V3/AzmayeshType/StoreTest.php +++ b/tests/Feature/V3/AzmayeshType/StoreTest.php @@ -2,6 +2,7 @@ namespace Tests\Feature\V3\AzmayeshType; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -13,12 +14,25 @@ class StoreTest extends TestCase /** * A basic feature test example. */ - public function test_name_attribute_is_required(): void + public function test_user_should_have_azmayesh_type_management_permission(): void { $user = User::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store')); + $response->assertForbidden(); + } + + public function test_name_attribute_is_required(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store')); + $response->assertUnprocessable() ->assertInvalid([ 'name' => __('validation.required', ['attribute' => "نام"]) @@ -27,7 +41,11 @@ class StoreTest extends TestCase public function test_name_attribute_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'name' => $this->faker->numberBetween(1, 10) @@ -41,7 +59,11 @@ class StoreTest extends TestCase public function test_fields_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store')); @@ -53,7 +75,11 @@ class StoreTest extends TestCase public function test_fields_attribute_should_be_array(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'fields' => $this->faker->numberBetween(1, 10) @@ -67,7 +93,11 @@ class StoreTest extends TestCase public function test_field_name_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'fields' => [ @@ -83,7 +113,11 @@ class StoreTest extends TestCase public function test_field_name_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'fields' => [ @@ -99,7 +133,11 @@ class StoreTest extends TestCase public function test_field_unit_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'fields' => [ @@ -115,7 +153,11 @@ class StoreTest extends TestCase public function test_field_type_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'fields' => [ @@ -131,7 +173,11 @@ class StoreTest extends TestCase public function test_field_type_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'fields' => [ @@ -147,7 +193,11 @@ class StoreTest extends TestCase public function test_field_option_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.store'), [ 'fields' => [ @@ -163,7 +213,11 @@ class StoreTest extends TestCase public function test_user_can_store_fields_for_an_azmayesh_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $data = [ 'name' => $this->faker->name, diff --git a/tests/Feature/V3/AzmayeshType/UpdateTest.php b/tests/Feature/V3/AzmayeshType/UpdateTest.php index 7cc6ba40..067beda9 100644 --- a/tests/Feature/V3/AzmayeshType/UpdateTest.php +++ b/tests/Feature/V3/AzmayeshType/UpdateTest.php @@ -2,7 +2,9 @@ namespace Tests\Feature\V3\AzmayeshType; +use App\Models\AzmayeshSample; use App\Models\AzmayeshType; +use App\Models\Permission; use App\Models\User; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithFaker; @@ -14,13 +16,27 @@ class UpdateTest extends TestCase /** * A basic feature test example. */ - public function test_name_attribute_is_required(): void + public function test_user_should_have_azmayesh_management_permission(): void { $user = User::factory()->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id])); + $response->assertForbidden(); + } + + public function test_name_attribute_is_required(): void + { + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); + $azmayeshType = AzmayeshType::factory()->create(); + + $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id])); + $response->assertUnprocessable() ->assertInvalid([ 'name' => __('validation.required', ['attribute' => "نام"]) @@ -29,7 +45,11 @@ class UpdateTest extends TestCase public function test_name_attribute_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -44,7 +64,11 @@ class UpdateTest extends TestCase public function test_fields_attribute_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id])); @@ -57,7 +81,11 @@ class UpdateTest extends TestCase public function test_fields_attribute_should_be_array(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -72,7 +100,11 @@ class UpdateTest extends TestCase public function test_field_name_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -89,7 +121,11 @@ class UpdateTest extends TestCase public function test_field_name_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -106,7 +142,11 @@ class UpdateTest extends TestCase public function test_field_unit_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -123,7 +163,11 @@ class UpdateTest extends TestCase public function test_field_type_is_required(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -140,7 +184,11 @@ class UpdateTest extends TestCase public function test_field_type_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -157,7 +205,11 @@ class UpdateTest extends TestCase public function test_field_option_should_be_string(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $response = $this->actingAs($user)->postJson(route('v3.azmayesh_types.update', [$azmayeshType->id]), [ @@ -174,7 +226,11 @@ class UpdateTest extends TestCase public function test_user_can_update_fields_for_an_azmayesh_type(): void { - $user = User::factory()->create(); + $user = User::factory() + ->has(Permission::factory([ + 'name' => 'azmayesh-type-management' + ])) + ->create(); $azmayeshType = AzmayeshType::factory()->create(); $data = [