From 3465e9f51e7f189c5457940fb8d1004c7f2fbe9d Mon Sep 17 00:00:00 2001
From: Augustin LECONTE <["ext.sopra.aleconte@grandlyon.com"]>
Date: Mon, 20 Dec 2021 09:04:00 +0000
Subject: [PATCH] =?UTF-8?q?feat(structure-list):=20add=20checkbox=20"conse?=
 =?UTF-8?q?iller=20num=C3=A9rique"?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../structure-list-search.component.html      | 18 +++++++++++++-
 .../structure-list-search.component.spec.ts   | 24 ++++++++++++++++---
 .../structure-list-search.component.ts        |  2 +-
 3 files changed, 39 insertions(+), 5 deletions(-)

diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.html b/src/app/structure-list/components/structure-list-search/structure-list-search.component.html
index f333a5f73..3489ad991 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.html
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.html
@@ -101,13 +101,29 @@
             type="checkbox"
             value="passNumerique"
             [checked]="searchService.getIndex(checkedModulesFilter, 'passNumerique', 'labelsQualifications') > -1"
-            (change)="numericPassCheck($event, 'labelsQualifications')"
+            (change)="externalCheckboxCheck($event, 'labelsQualifications')"
           />
           <span class="customCheck"></span>
           <div class="label pass">Pass numérique</div>
         </label>
       </div>
     </div>
+    <div class="checkbox no-width">
+      <div class="checkboxItem">
+        <label>
+          <input
+            type="checkbox"
+            value="conseillerNumFranceServices"
+            [checked]="
+              searchService.getIndex(checkedModulesFilter, 'conseillerNumFranceServices', 'labelsQualifications') > -1
+            "
+            (change)="externalCheckboxCheck($event, 'labelsQualifications')"
+          />
+          <span class="customCheck"></span>
+          <div class="label pass">Conseiller numérique</div>
+        </label>
+      </div>
+    </div>
     <a routerLink="/create-structure" tabindex="0">Ajouter une structure</a>
   </div>
 </div>
diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.spec.ts b/src/app/structure-list/components/structure-list-search/structure-list-search.component.spec.ts
index 2e96293cd..d3480a964 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.spec.ts
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.spec.ts
@@ -89,11 +89,29 @@ describe('StructureListSearchComponent', () => {
     component.closeModal();
     expect(component.modalTypeOpened).toBeUndefined();
   });
-  // numericPassCheck function
+  // externalCheckboxCheck function
   it('should add numericPass filter to array of current filters and increment by one number of moreFilters element', () => {
     const evt = { target: { checked: true, value: 'Pass numérique' } };
     const categ = 'Labels et qualifications';
-    component.numericPassCheck(evt, categ);
+    component.externalCheckboxCheck(evt, categ);
+    const expectArray: Module[] = [new Module(evt.target.value, categ)];
+    expect(component.checkedModulesFilter).toEqual(expectArray);
+    expect(component.numberMoreFiltersChecked).toEqual(1);
+  });
+  it('should remove conseillerNumFranceServices filter to array of current filters and increment by one number of moreFilters element', () => {
+    const evt = { target: { checked: false, value: 'Conseiller numérique' } };
+    const categ = 'Labels et qualifications';
+    const checkedModules: Module[] = [{ id: evt.target.value, text: categ, count: 0 }];
+    component.checkedModulesFilter = checkedModules;
+    component.externalCheckboxCheck(evt, categ);
+    new Module(evt.target.value, categ);
+    expect(component.checkedModulesFilter.length).toEqual(0);
+    expect(component.numberMoreFiltersChecked).toEqual(0);
+  });
+  it('should add conseillerNumFranceServices filter to array of current filters and increment by one number of moreFilters element', () => {
+    const evt = { target: { checked: true, value: 'Conseiller numérique' } };
+    const categ = 'Labels et qualifications';
+    component.externalCheckboxCheck(evt, categ);
     const expectArray: Module[] = [new Module(evt.target.value, categ)];
     expect(component.checkedModulesFilter).toEqual(expectArray);
     expect(component.numberMoreFiltersChecked).toEqual(1);
@@ -103,7 +121,7 @@ describe('StructureListSearchComponent', () => {
     const categ = 'Labels et qualifications';
     const checkedModules: Module[] = [{ id: evt.target.value, text: categ, count: 0 }];
     component.checkedModulesFilter = checkedModules;
-    component.numericPassCheck(evt, categ);
+    component.externalCheckboxCheck(evt, categ);
     new Module(evt.target.value, categ);
     expect(component.checkedModulesFilter.length).toEqual(0);
     expect(component.numberMoreFiltersChecked).toEqual(0);
diff --git a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
index 40309ecd2..8c775223c 100644
--- a/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
+++ b/src/app/structure-list/components/structure-list-search/structure-list-search.component.ts
@@ -171,7 +171,7 @@ export class StructureListSearchComponent implements OnInit {
   }
 
   // Management of the checkbox event (Check / Uncheck)
-  public numericPassCheck(event, categ): void {
+  public externalCheckboxCheck(event, categ): void {
     const checkValue: string = event.target.value;
     const inputTerm = this.searchForm.get('searchTerm').value;
     if (event.target.checked) {
-- 
GitLab