From 6cc055b2c44dd5804cda862b0ce7b986854464f9 Mon Sep 17 00:00:00 2001 From: sebastien <dupuy@datakode.fr> Date: Tue, 28 Jun 2022 11:42:58 +0200 Subject: [PATCH] avancement des tests evaluation pour le controleur --- app/Http/Controllers/Api/EvaluationsController.php | 12 ++++++------ app/Http/Requests/EvaluationRequest.php | 8 +++----- app/Models/DangerLevelEvaluation.php | 1 + tests/Feature/EvaluationsControllerTest.php | 14 +++++++++++--- 4 files changed, 21 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/Api/EvaluationsController.php b/app/Http/Controllers/Api/EvaluationsController.php index 06fd38ed..bf359b0c 100644 --- a/app/Http/Controllers/Api/EvaluationsController.php +++ b/app/Http/Controllers/Api/EvaluationsController.php @@ -70,17 +70,16 @@ public function save(EvaluationRequest $request, $id = null) { $user = Auth::user(); $data = $request->validated(); - //dd($data); if ($user->role <= User::ROLE_MANAGER) { + if (($user->role === User::ROLE_MANAGER)&& ($data['organization_id'] !== $user->organization_id)){ + abort(403); + } if(!isset($id)){ $evaluation = new Evaluation(); $evaluation->author = $data['author']; } else { $evaluation = Evaluation::find($id); - if (($user->role === User::ROLE_MANAGER)&& ($evaluation->organization_id !== $user->organization_id)){ - abort(403); - } } $evaluation->status = $data['status']; @@ -125,10 +124,11 @@ public function save(EvaluationRequest $request, $id = null) } } - return $evaluation->with('dangerLevels') + return Evaluation::where('id',$evaluation->id) + ->with('dangerLevels') ->with('evaluationMeasures') ->with('organization') - ->get(); + ->first(); } abort(403); diff --git a/app/Http/Requests/EvaluationRequest.php b/app/Http/Requests/EvaluationRequest.php index fde1342a..58bb1cff 100644 --- a/app/Http/Requests/EvaluationRequest.php +++ b/app/Http/Requests/EvaluationRequest.php @@ -28,11 +28,9 @@ public function rules() 'current_step' => 'int|required', 'current_step_status' => 'int|required', 'organization_id' => 'int|required', - 'danger_levels' => 'array|nullable', - 'danger_levels.id' => 'int|nullable', - 'danger_levels.id' => 'int|nullable', - 'danger_levels.id' => 'int|nullable', - + 'danger_levels.*.id' => 'int|nullable', + 'danger_levels.*.danger_level_id' => 'int|nullable', + 'danger_levels.*.evaluation_id' => 'int|nullable', 'evaluation_measures' => 'array|nullable', 'updated_by' => 'string|max:255|required', 'author' => 'string|nullable' diff --git a/app/Models/DangerLevelEvaluation.php b/app/Models/DangerLevelEvaluation.php index 584e418e..c1cd454b 100644 --- a/app/Models/DangerLevelEvaluation.php +++ b/app/Models/DangerLevelEvaluation.php @@ -7,5 +7,6 @@ class DangerLevelEvaluation extends Model { + protected $table = 'danger_level_evaluation'; use HasFactory; } diff --git a/tests/Feature/EvaluationsControllerTest.php b/tests/Feature/EvaluationsControllerTest.php index de8b61fa..2c6f6e83 100644 --- a/tests/Feature/EvaluationsControllerTest.php +++ b/tests/Feature/EvaluationsControllerTest.php @@ -2,6 +2,7 @@ namespace Tests\Feature; +use App\Models\DangerLevelEvaluation; use App\Models\Evaluation; use App\Models\Organization; use App\Models\User; @@ -135,13 +136,20 @@ public function testPostEvaluationShouldCreateDraftEvaluation() { $user = User::where('role', User::ROLE_MANAGER)->first(); + $dangersLevelsEval = new DangerLevelEvaluation(); + $dangersLevelsEval->danger_level_id = 1; + $dangersLevelsEval->evaluation_id = 3; + $dangersLevelsEval->save(); + $eval = [ - 'organization_id' => $user->organisation_id, + 'organization_id' => $user->organization_id, 'current_step' => 1, 'status' => 1, 'current_step_status' => 1, 'updated_by' => $user->firstname .' '. $user->lastname, - 'author' => $user->firstname .' '. $user->lastname + 'author' => $user->firstname .' '. $user->lastname, + 'danger_levels' => [$dangersLevelsEval], + ]; $nextId = Evaluation::orderBy('id', 'desc')->first()->id + 1; @@ -162,7 +170,7 @@ public function testPostEvaluationShouldCreateDraftEvaluation() 'organization' => $user->organization->toArray(), 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s'), - 'danger_levels' => [], + 'danger_levels' => [$dangersLevelsEval], 'evaluation_measures' => [], ], $data); -- GitLab