From 7afd7da2b44820dc7da4acd6b110299ce3b9368d Mon Sep 17 00:00:00 2001 From: spencerrlongg Date: Wed, 21 May 2025 11:44:54 -0500 Subject: [PATCH] initial work, more testing/tests needed --- .../Controllers/Api/DepartmentsController.php | 3 +- app/Http/Requests/StoreDepartmentRequest.php | 32 +++++++++++++++++++ .../Departments/Api/CreateDepartmentsTest.php | 12 +++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 app/Http/Requests/StoreDepartmentRequest.php diff --git a/app/Http/Controllers/Api/DepartmentsController.php b/app/Http/Controllers/Api/DepartmentsController.php index 167d5cbc2a..ec8a605caf 100644 --- a/app/Http/Controllers/Api/DepartmentsController.php +++ b/app/Http/Controllers/Api/DepartmentsController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Api; use App\Helpers\Helper; use App\Http\Controllers\Controller; +use App\Http\Requests\StoreDepartmentRequest; use App\Http\Transformers\DepartmentsTransformer; use App\Http\Transformers\SelectlistTransformer; use App\Models\Department; @@ -94,7 +95,7 @@ class DepartmentsController extends Controller * @since [v4.0] * @param \App\Http\Requests\ImageUploadRequest $request */ - public function store(ImageUploadRequest $request) : JsonResponse + public function store(StoreDepartmentRequest $request): JsonResponse { $this->authorize('create', Department::class); $department = new Department; diff --git a/app/Http/Requests/StoreDepartmentRequest.php b/app/Http/Requests/StoreDepartmentRequest.php new file mode 100644 index 0000000000..3b94e19326 --- /dev/null +++ b/app/Http/Requests/StoreDepartmentRequest.php @@ -0,0 +1,32 @@ +|string> + */ + public function rules(): array + { + $modelRules = (new Department)->getRules(); + + return array_merge( + $modelRules, + ); + } +} diff --git a/tests/Feature/Departments/Api/CreateDepartmentsTest.php b/tests/Feature/Departments/Api/CreateDepartmentsTest.php index e0f975dd7f..4b887bfc3d 100644 --- a/tests/Feature/Departments/Api/CreateDepartmentsTest.php +++ b/tests/Feature/Departments/Api/CreateDepartmentsTest.php @@ -3,6 +3,7 @@ namespace Tests\Feature\Departments\Api; use App\Models\AssetModel; +use App\Models\Company; use App\Models\Department; use App\Models\Category; use App\Models\User; @@ -39,4 +40,15 @@ class CreateDepartmentsTest extends TestCase $this->assertEquals('Test Note', $department->notes); } + public function testNoArraysAllowed() + { + $response = $this->actingAsForApi(User::factory()->superuser()->create()) + ->postJson(route('api.departments.store'), [ + 'name' => 'Test Department', + 'company_id' => [1, 2], + ]) + ->assertOk() + ->assertStatusMessageIs('error'); + } + }