From 95f678ce4e11761bed579c4549fc2fa6333a1d43 Mon Sep 17 00:00:00 2001
From: Jonathan Foucher <jfoucher@gmail.com>
Date: Thu, 11 Aug 2022 09:32:25 +0200
Subject: [PATCH] Fix tests

---
 .../Controllers/Api/TerritoriesController.php | 20 +++++------
 app/Http/Controllers/PdfController.php        | 34 +++++++++----------
 app/Models/Evaluation.php                     |  4 +--
 app/Repository/GraphDataRepository.php        |  1 +
 ..._07_26_080718_create_territories_table.php |  3 +-
 ...ld_territory_id_to_organizations_table.php |  3 +-
 database/seeders/DatabaseSeeder.php           |  1 -
 database/seeders/TerritorySeeder.php          |  1 -
 .../Components/Results/MaturityCyber.vue      |  2 +-
 .../Single/Components/Step3/RiskGraph.vue     |  2 +-
 .../Step4/CyberRiskGraphElement.vue           |  2 +-
 .../Components/Step4/CyberRiskyGraph.vue      |  8 ++---
 .../Evaluations/Single/Steps/Step3.vue        |  2 +-
 .../Evaluations/Single/Steps/Step4.vue        |  2 +-
 .../Evaluations/Single/View/index.vue         |  4 +--
 resources/js/components/Menu/PageHeader.vue   |  2 +-
 resources/js/components/Menu/Side.vue         |  6 ++--
 .../Single/InformationsBlock.vue              |  6 ++--
 resources/js/components/Territories/List.vue  | 18 +++-------
 .../components/Territories/Single/index.vue   |  2 +-
 tests/Feature/OrganizationsControllerTest.php |  4 +--
 tests/Feature/TerritoriesControllerTest.php   |  5 ++-
 22 files changed, 57 insertions(+), 75 deletions(-)

diff --git a/app/Http/Controllers/Api/TerritoriesController.php b/app/Http/Controllers/Api/TerritoriesController.php
index 15645d27..37d73276 100644
--- a/app/Http/Controllers/Api/TerritoriesController.php
+++ b/app/Http/Controllers/Api/TerritoriesController.php
@@ -10,7 +10,8 @@
 
 class TerritoriesController extends Controller
 {
-    public function all(){
+    public function all()
+    {
         /**
          * @var User $user
          */
@@ -21,12 +22,12 @@ public function all(){
             // If admin return all users across all organizations
             return Territory::with('organizations')
                 ->get();
-        } else {
-            abort(403);
         }
+        abort(403);
     }
 
-    public function save(TerritoryRequest $request, $id = null){
+    public function save(TerritoryRequest $request, $id = null)
+    {
         /**
          * @var User $authUser
          */
@@ -34,16 +35,14 @@ public function save(TerritoryRequest $request, $id = null){
         // Update or create user
         $data = json_decode($request->getContent(), true);
 
-        if (User::ROLE_ADMIN === $authUser->role){
+        if (User::ROLE_ADMIN === $authUser->role) {
             if ($id) {
-                $territory = Territory::find((int)$id);
-            }
-            else {
+                $territory = Territory::find((int) $id);
+            } else {
                 $territory = new Territory();
             }
             $territory->name = $data['name'];
             $territory->save();
-
         } else {
             abort(403);
         }
@@ -52,7 +51,8 @@ public function save(TerritoryRequest $request, $id = null){
             ->find($territory->id);
     }
 
-    public function delete($id){
+    public function delete($id)
+    {
         /**
          * @var User $authUser
          */
diff --git a/app/Http/Controllers/PdfController.php b/app/Http/Controllers/PdfController.php
index f884d294..c694986c 100644
--- a/app/Http/Controllers/PdfController.php
+++ b/app/Http/Controllers/PdfController.php
@@ -34,7 +34,6 @@ public function ActionPlanPdf()
             ->orderBy('updated_at', 'DESC')
             ->first();
 
-
         if (!$evaluation) {
             abort(404);
         }
@@ -151,12 +150,12 @@ public function PolitiqueSecuritePdf()
 
         $filename = 'politique_securite' . date('Y-m-d') . '.pdf';
 
-        if (file_exists(storage_path('app/politique_securite/'.$filename))) {
-            unlink(storage_path('app/politique_securite/'.$filename));
+        if (file_exists(storage_path('app/politique_securite/' . $filename))) {
+            unlink(storage_path('app/politique_securite/' . $filename));
         }
-        $pdf->save(storage_path('app/politique_securite/'. $filename));
+        $pdf->save(storage_path('app/politique_securite/' . $filename));
 
-        return Storage::download('politique_securite/' . $filename, "Politique de sécurité - " . date('Y-m-d') . '.pdf');
+        return Storage::download('politique_securite/' . $filename, 'Politique de sécurité - ' . date('Y-m-d') . '.pdf');
     }
 
     public function DossierCyberSecuritePdf(GraphDataRepository $repository)
@@ -189,7 +188,6 @@ public function DossierCyberSecuritePdf(GraphDataRepository $repository)
         $actionSorted = $collectionAction->sortBy('end_date');
         $actionSorted = $actionSorted->values()->all();
 
-
         $dangerLevels = DangerLevel::all();
 
         $data = [
@@ -200,14 +198,14 @@ public function DossierCyberSecuritePdf(GraphDataRepository $repository)
             'elu' => 'test elu',
             'agent' => 'test agent',
             'referentiel' => $evaluation->reference,
-            'legendLevels' =>  $dangerLevels,
-            'residualRisks' =>  $evaluation->getResidualDangers(),
-            'measuresData' =>  $repository->getMeasuresDataForEvaluation($evaluation),
-            'attackData' =>  $repository->getAttackDataForEvaluation($evaluation),
-            'expositionData' =>  $repository->getExpositionDataForEvaluation($evaluation),
-            'risksData' =>  $repository->getRisksDataForEvaluation($evaluation),
-            'futureRisksData' =>  $repository->getFutureRisksDataForEvaluation($evaluation),
-            'maturityData' =>  $repository->getMaturityDataForEvaluation($evaluation),
+            'legendLevels' => $dangerLevels,
+            'residualRisks' => $evaluation->getResidualDangers(),
+            'measuresData' => $repository->getMeasuresDataForEvaluation($evaluation),
+            'attackData' => $repository->getAttackDataForEvaluation($evaluation),
+            'expositionData' => $repository->getExpositionDataForEvaluation($evaluation),
+            'risksData' => $repository->getRisksDataForEvaluation($evaluation),
+            'futureRisksData' => $repository->getFutureRisksDataForEvaluation($evaluation),
+            'maturityData' => $repository->getMaturityDataForEvaluation($evaluation),
             'date' => $evaluation->updated_at->format('d/m/Y'),
         ];
 
@@ -233,11 +231,11 @@ public function DossierCyberSecuritePdf(GraphDataRepository $repository)
 
         $filename = 'dossier_cybersecurite' . date('Y-m-d') . '.pdf';
 
-        if (file_exists(storage_path('app/dossier_cybersecurite/'.$filename))) {
-            unlink(storage_path('app/dossier_cybersecurite/'.$filename));
+        if (file_exists(storage_path('app/dossier_cybersecurite/' . $filename))) {
+            unlink(storage_path('app/dossier_cybersecurite/' . $filename));
         }
-        $pdf->save(storage_path('app/dossier_cybersecurite/'. $filename));
+        $pdf->save(storage_path('app/dossier_cybersecurite/' . $filename));
 
-        return Storage::download('dossier_cybersecurite/' . $filename, "Dossier cybersécurité - " . date('Y-m-d') . '.pdf');
+        return Storage::download('dossier_cybersecurite/' . $filename, 'Dossier cybersécurité - ' . date('Y-m-d') . '.pdf');
     }
 }
diff --git a/app/Models/Evaluation.php b/app/Models/Evaluation.php
index 7a5b8cc0..7dc3413b 100644
--- a/app/Models/Evaluation.php
+++ b/app/Models/Evaluation.php
@@ -87,7 +87,7 @@ public function getResidualDangers()
         foreach ($scenarios as $scenario) {
             foreach ($scenario->measures as $measure) {
                 // Get the level of this measure for this evaluation
-                $level = $this->measureLevels->first(function(MeasureLevel $ml) use ($measure) {
+                $level = $this->measureLevels->first(function (MeasureLevel $ml) use ($measure) {
                     return $ml->measure_id === $measure->id;
                 });
                 if ($level->actual_level > 0) {
@@ -96,7 +96,7 @@ public function getResidualDangers()
             }
         }
 
-        return $residual_scenarios->map(function(Scenario $scenario) {
+        return $residual_scenarios->map(function (Scenario $scenario) {
             return $scenario->dangers;
         })->flatten(1)->unique('id');
     }
diff --git a/app/Repository/GraphDataRepository.php b/app/Repository/GraphDataRepository.php
index 8065bad8..9885ef4c 100644
--- a/app/Repository/GraphDataRepository.php
+++ b/app/Repository/GraphDataRepository.php
@@ -230,6 +230,7 @@ private function getFutureExpositionPointsForScenario(Scenario $scenario, $measu
             if (!$val) {
                 $val = $measure->{'level' . $selectedLevel->actual_level . '_value'};
             }
+
             return $acc + $val;
         }, 0);
 
diff --git a/database/migrations/2022_07_26_080718_create_territories_table.php b/database/migrations/2022_07_26_080718_create_territories_table.php
index 755e102c..a59c40e1 100644
--- a/database/migrations/2022_07_26_080718_create_territories_table.php
+++ b/database/migrations/2022_07_26_080718_create_territories_table.php
@@ -4,8 +4,7 @@
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-return new class() extends Migration
-{
+return new class() extends Migration {
     /**
      * Run the migrations.
      *
diff --git a/database/migrations/2022_07_26_081718_add_field_territory_id_to_organizations_table.php b/database/migrations/2022_07_26_081718_add_field_territory_id_to_organizations_table.php
index 7c9a37cd..6c1168f9 100644
--- a/database/migrations/2022_07_26_081718_add_field_territory_id_to_organizations_table.php
+++ b/database/migrations/2022_07_26_081718_add_field_territory_id_to_organizations_table.php
@@ -4,8 +4,7 @@
 use Illuminate\Database\Schema\Blueprint;
 use Illuminate\Support\Facades\Schema;
 
-return new class extends Migration
-{
+return new class() extends Migration {
     /**
      * Run the migrations.
      *
diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php
index 1605fbc5..8f118f41 100644
--- a/database/seeders/DatabaseSeeder.php
+++ b/database/seeders/DatabaseSeeder.php
@@ -2,7 +2,6 @@
 
 namespace Database\Seeders;
 
-use App\Models\Territory;
 use Illuminate\Database\Seeder;
 
 class DatabaseSeeder extends Seeder
diff --git a/database/seeders/TerritorySeeder.php b/database/seeders/TerritorySeeder.php
index b229c000..3ab193bb 100644
--- a/database/seeders/TerritorySeeder.php
+++ b/database/seeders/TerritorySeeder.php
@@ -3,7 +3,6 @@
 namespace Database\Seeders;
 
 use App\Models\Territory;
-use Illuminate\Database\Console\Seeds\WithoutModelEvents;
 use Illuminate\Database\Seeder;
 
 class TerritorySeeder extends Seeder
diff --git a/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue b/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue
index 728ba622..9b6e0246 100644
--- a/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue
+++ b/resources/js/components/Evaluations/Single/Components/Results/MaturityCyber.vue
@@ -12,7 +12,7 @@
 </template>
 
 <script>
-import {PolarArea, Radar} from 'vue-chartjs/legacy'
+import {Radar} from 'vue-chartjs/legacy'
 import { Chart as ChartJS, Title, Tooltip, Legend, RadialLinearScale, registerables} from 'chart.js'
 
 ChartJS.register(Title, Tooltip, Legend, RadialLinearScale, ...registerables)
diff --git a/resources/js/components/Evaluations/Single/Components/Step3/RiskGraph.vue b/resources/js/components/Evaluations/Single/Components/Step3/RiskGraph.vue
index ca44f9e1..efd3ab98 100644
--- a/resources/js/components/Evaluations/Single/Components/Step3/RiskGraph.vue
+++ b/resources/js/components/Evaluations/Single/Components/Step3/RiskGraph.vue
@@ -7,7 +7,7 @@
 
 <script>
 import { Bar } from 'vue-chartjs/legacy'
-import { Chart as ChartJS, Title, Tooltip, Legend, BarElement, CategoryScale, LinearScale, Ticks} from 'chart.js'
+import { Chart as ChartJS, Title, Tooltip, Legend, BarElement, CategoryScale, LinearScale} from 'chart.js'
 
 ChartJS.register(Title, Tooltip, Legend, BarElement, CategoryScale, LinearScale)
 
diff --git a/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskGraphElement.vue b/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskGraphElement.vue
index 7cae14dc..c24c4743 100644
--- a/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskGraphElement.vue
+++ b/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskGraphElement.vue
@@ -9,7 +9,7 @@
     </div>
 </template>
 <script>
-import {Bar, PolarArea} from 'vue-chartjs/legacy'
+import {Bar} from 'vue-chartjs/legacy'
 import { Chart as ChartJS, Title, Tooltip, Legend, RadialLinearScale, registerables} from 'chart.js'
 
 ChartJS.register(Title, Tooltip, Legend, RadialLinearScale, ...registerables)
diff --git a/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskyGraph.vue b/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskyGraph.vue
index b311cce1..2b73b01f 100644
--- a/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskyGraph.vue
+++ b/resources/js/components/Evaluations/Single/Components/Step4/CyberRiskyGraph.vue
@@ -7,10 +7,10 @@
                 </div>
             </div>
             <div class="card-body graph">
-                <div class="row" v-if="loaded && chartData" id="futureExpograph">
-<!--                    Show one graph for each danger-->
-                    <div class="col" v-for="(label, index) in chartData.labels" :key="label">
-                        <CyberRiskGraphElement :index="index" :chartData="chartData"/>
+                <div v-if="loaded && chartData" id="futureExpograph" class="row">
+                    <!--                    Show one graph for each danger-->
+                    <div v-for="(label, index) in chartData.labels" :key="label" class="col">
+                        <CyberRiskGraphElement :index="index" :chart-data="chartData"/>
                     </div>
                 </div>
                 <div v-else class=" text-center">
diff --git a/resources/js/components/Evaluations/Single/Steps/Step3.vue b/resources/js/components/Evaluations/Single/Steps/Step3.vue
index 3cd630a8..1ba73a16 100644
--- a/resources/js/components/Evaluations/Single/Steps/Step3.vue
+++ b/resources/js/components/Evaluations/Single/Steps/Step3.vue
@@ -45,7 +45,7 @@
                     </div>
                 </div>
                 <div class="card-body">
-                    <AttackGraph :evaluation="evaluation" :maxHeight="'none'"/>
+                    <AttackGraph :evaluation="evaluation" :max-height="'none'"/>
                 </div>
             </div>
         </div>
diff --git a/resources/js/components/Evaluations/Single/Steps/Step4.vue b/resources/js/components/Evaluations/Single/Steps/Step4.vue
index c5a671c4..2502b066 100644
--- a/resources/js/components/Evaluations/Single/Steps/Step4.vue
+++ b/resources/js/components/Evaluations/Single/Steps/Step4.vue
@@ -1,5 +1,5 @@
 <template>
-    <div class="row" v-if="evaluation">
+    <div v-if="evaluation" class="row">
         <CyberRiskyGraph :evaluation="evaluation" />
         <PlanAction ref="planAction" :evaluation="evaluation" :submitted="submitted" />
         <Buttons :is-editable="isEditable" />
diff --git a/resources/js/components/Evaluations/Single/View/index.vue b/resources/js/components/Evaluations/Single/View/index.vue
index 2744250a..59384172 100644
--- a/resources/js/components/Evaluations/Single/View/index.vue
+++ b/resources/js/components/Evaluations/Single/View/index.vue
@@ -23,7 +23,7 @@
                         </div>
                     </div>
                     <div class="card-body">
-                    <AttackGraph :evaluation="evaluation" :maxHeight="'400px'" />
+                        <AttackGraph :evaluation="evaluation" :max-height="'400px'" />
                     </div>
                 </div>
                 <PlanAction :evaluation="evaluation" />
@@ -56,7 +56,6 @@ import Dangers from '../Components/Results/Dangers'
 import Measures from '../Components/Results/Measures'
 import AttackGraph from '../Components/Step3/AttackGraph'
 import PlanAction from '../Components/Results/PlanAction'
-import RiskGraph from '../Components/Step3/RiskGraph'
 import MaturityCyber from '../Components/Results/MaturityCyber'
 import Historic from '../Components/Results/Historic'
 import NotFound from "../../../Errors/NotFound";
@@ -72,7 +71,6 @@ export default {
         Measures,
         AttackGraph,
         PlanAction,
-        RiskGraph,
         MaturityCyber,
         Historic,
     },
diff --git a/resources/js/components/Menu/PageHeader.vue b/resources/js/components/Menu/PageHeader.vue
index 8056b01c..5cf27c62 100644
--- a/resources/js/components/Menu/PageHeader.vue
+++ b/resources/js/components/Menu/PageHeader.vue
@@ -72,7 +72,7 @@ export default {
                 return org.name
             case 'territory':
                 if (!ter) {
-                  return null
+                    return null
                 }
                 return ter.name
             case 'profile':
diff --git a/resources/js/components/Menu/Side.vue b/resources/js/components/Menu/Side.vue
index d83a187f..fb9a62af 100644
--- a/resources/js/components/Menu/Side.vue
+++ b/resources/js/components/Menu/Side.vue
@@ -72,7 +72,7 @@
                             </p>
                         </a>
                     </li>
-                    <li class="nav-item" v-if="user && user.organization_id">
+                    <li v-if="user && user.organization_id" class="nav-item">
                         <a
                             :href="`/pdf/politiqueSecurite/${user.organization_id}`"
                             target="_blank"
@@ -84,7 +84,7 @@
                             </p>
                         </a>
                     </li>
-                    <li class="nav-item" v-if="user && user.organization_id">
+                    <li v-if="user && user.organization_id" class="nav-item">
                         <a
                             :href="`/pdf/planAction/${user.organization_id}`"
                             target="_blank"
@@ -132,7 +132,7 @@
                             class="nav-link w-100 rounded-0"
                             active-class="active"
                         >
-                          <i class="nav-icon fas fa-map"></i><p>Territoires</p>
+                            <i class="nav-icon fas fa-map"></i><p>Territoires</p>
                         </router-link>
                     </li>
                     <li
diff --git a/resources/js/components/Organizations/Single/InformationsBlock.vue b/resources/js/components/Organizations/Single/InformationsBlock.vue
index 33acc142..bc46903d 100644
--- a/resources/js/components/Organizations/Single/InformationsBlock.vue
+++ b/resources/js/components/Organizations/Single/InformationsBlock.vue
@@ -54,14 +54,14 @@
             </div>
             <div class="form-group">
                 <label :class="{ 'text-danger': submitted && $v.organization.territory_id.$error }" for="territory">Territoire</label> <i
-                class="text-muted small">(Obligatoire)</i>
+                    class="text-muted small">(Obligatoire)</i>
                 <select
                     id="type" v-model="organization.territory_id"
                     :disabled="!isAdmin()"
                     class="form-control" :class="{ 'is-invalid': submitted && $v.organization.territory_id.$error }">
                     <option v-for="ter in territories" :key="ter.id" :value="ter.id">{{
-                            ter.name
-                        }}
+                        ter.name
+                    }}
                     </option>
                 </select>
                 <div v-if="$v.organization.territory_id.$error" class="text-danger">Champ obligatoire</div>
diff --git a/resources/js/components/Territories/List.vue b/resources/js/components/Territories/List.vue
index ad4fd67b..608d6d08 100644
--- a/resources/js/components/Territories/List.vue
+++ b/resources/js/components/Territories/List.vue
@@ -48,13 +48,15 @@
                         <i class="fas fa-pen" /> Modifier
                     </router-link>
 
-                    <button v-if="props.row.organizations.length "
+                    <button
+                        v-if="props.row.organizations.length "
                         class="btn btn-light btn-xs"
                         @click="toaster(this, `Le territoire ${props.row.name} a des structures liées. Suppression impossible.`, 'bg-danger');"
                     >
                         <i class="fas fa-trash" /> Supprimer
                     </button>
-                    <button v-else
+                    <button
+                        v-else
                         class="btn btn-light btn-xs"
                         @click="deleteRow(props.row)"
                     >
@@ -117,17 +119,7 @@ export default {
                     return diacritic(true,o.name,this.terName);
                 })
                 .filter(v => {
-                    if (this.structuresNumber !== null){
-                        if (this.structuresNumber !== ""){
-                            return v.organizations.length == this.structuresNumber;
-                        }
-                        else {
-                            return true
-                        }
-                    }
-                    else {
-                        return true;
-                    }
+                    return this.structuresNumber === "" || this.structuresNumber === "" || v.organizations.length === this.structuresNumber;
                 })
         },
     },
diff --git a/resources/js/components/Territories/Single/index.vue b/resources/js/components/Territories/Single/index.vue
index 6e47c43b..d55aea64 100644
--- a/resources/js/components/Territories/Single/index.vue
+++ b/resources/js/components/Territories/Single/index.vue
@@ -63,7 +63,7 @@
 import ErrorBlock from '../../../utils/ErrorBlock.vue'
 import toaster from '../../../utils/toaster'
 import { isAdmin } from '../../../utils/permissions'
-import {required, integer} from 'vuelidate/lib/validators'
+import {required} from 'vuelidate/lib/validators'
 
 const defaultTerritory = {
     id: null,
diff --git a/tests/Feature/OrganizationsControllerTest.php b/tests/Feature/OrganizationsControllerTest.php
index dd8ec222..4479ba1f 100644
--- a/tests/Feature/OrganizationsControllerTest.php
+++ b/tests/Feature/OrganizationsControllerTest.php
@@ -95,9 +95,7 @@ public function testAdminCanCreateOrganization()
                 'email' => 'll@mg.com',
                 'phone' => '0546535456',
             ],
-            'territory' => [
-                'id' => 1,
-            ]
+            'territory_id' => 1,
         ];
 
         $response = $this->actingAs($user)->postJson(route('api.organizations.post'), $org);
diff --git a/tests/Feature/TerritoriesControllerTest.php b/tests/Feature/TerritoriesControllerTest.php
index fd35746a..ebcc1716 100644
--- a/tests/Feature/TerritoriesControllerTest.php
+++ b/tests/Feature/TerritoriesControllerTest.php
@@ -27,7 +27,7 @@ public function testAdminUserCanGetAll()
         $response->assertOk();
         $territories = Territory::with('organizations')
             ->get();
-        $this->assertEquals($territories->toArray() , $response->json());
+        $this->assertEquals($territories->toArray(), $response->json());
     }
 
     /**
@@ -69,7 +69,7 @@ public function testCreateTerritoryWithMissingNameShouldGiveValidationErrors()
      */
     public function testUserCannotCreateTerritory()
     {
-        $user = User::where('role', '!=',User::ROLE_ADMIN)->first();
+        $user = User::where('role', '!=', User::ROLE_ADMIN)->first();
         $org = ['name' => 'test territory'];
 
         $response = $this->actingAs($user)->postJson(route('api.territories.post'), $org);
@@ -96,7 +96,6 @@ public function testAdminCanUpdateTerritory()
         $this->assertNotNull($territory);
         $this->assertEquals($territory->toArray(), $data);
         $this->assertEquals('NEW TER', $territory->name);
-
     }
 
     /**
-- 
GitLab