From aa058269ad28874fc4b4e99472eb3ed0bf8b75e8 Mon Sep 17 00:00:00 2001
From: Jeremie BRISON <ext.sopra.jbrison@grandlyon.com>
Date: Mon, 2 Nov 2020 16:16:43 +0100
Subject: [PATCH] fix(search) : fix review request merge

---
 debug.log                                     |  1 +
 .../modal-filter/modal-filter.component.html  |  2 +-
 .../modal-filter/modal-filter.component.scss  |  1 -
 .../modal-filter.component.spec.ts            | 14 +++++++++++---
 .../modal-filter/modal-filter.component.ts    |  8 ++++----
 .../components/search/search.component.scss   |  1 -
 .../search/search.component.spec.ts           |  4 ++--
 .../components/search/search.component.ts     |  3 +--
 .../services/search.service.spec.ts           | 19 +++++++++++++++++++
 9 files changed, 39 insertions(+), 14 deletions(-)
 create mode 100644 debug.log

diff --git a/debug.log b/debug.log
new file mode 100644
index 000000000..a9f90adc5
--- /dev/null
+++ b/debug.log
@@ -0,0 +1 @@
+[1102/160447.168:ERROR:directory_reader_win.cc(43)] FindFirstFile: Le chemin d’accès spécifié est introuvable. (0x3)
diff --git a/src/app/structure-list/components/modal-filter/modal-filter.component.html b/src/app/structure-list/components/modal-filter/modal-filter.component.html
index d006c7cac..12b002559 100644
--- a/src/app/structure-list/components/modal-filter/modal-filter.component.html
+++ b/src/app/structure-list/components/modal-filter/modal-filter.component.html
@@ -27,7 +27,7 @@
     </div>
     <div class="footer" fxLayout="row" fxLayoutAlign="end center" fxLayoutGap="3vw">
       <a (click)="clearFilters()">Effacer</a>
-      <button type="button" (click)="emitFilter(searchForm.value.searchTerm)">Appliquer</button>
+      <button type="button" (click)="emitFilter()">Appliquer</button>
     </div>
   </div>
 </div>
diff --git a/src/app/structure-list/components/modal-filter/modal-filter.component.scss b/src/app/structure-list/components/modal-filter/modal-filter.component.scss
index ccb052e16..420969748 100644
--- a/src/app/structure-list/components/modal-filter/modal-filter.component.scss
+++ b/src/app/structure-list/components/modal-filter/modal-filter.component.scss
@@ -113,7 +113,6 @@
     }
   }
   label {
-    //display: inline-grid;
     align-items: center;
     grid-template-columns: min-content auto;
     display: inline-grid;
diff --git a/src/app/structure-list/components/modal-filter/modal-filter.component.spec.ts b/src/app/structure-list/components/modal-filter/modal-filter.component.spec.ts
index 5228b636c..bf696da42 100644
--- a/src/app/structure-list/components/modal-filter/modal-filter.component.spec.ts
+++ b/src/app/structure-list/components/modal-filter/modal-filter.component.spec.ts
@@ -1,4 +1,6 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { ReactiveFormsModule } from '@angular/forms';
+import { Filter } from '../../models/filter.model';
 
 import { ModalFilterComponent } from './modal-filter.component';
 
@@ -8,9 +10,9 @@ describe('ModalFilterComponent', () => {
 
   beforeEach(async () => {
     await TestBed.configureTestingModule({
-      declarations: [ ModalFilterComponent ]
-    })
-    .compileComponents();
+      declarations: [ModalFilterComponent],
+      imports: [ReactiveFormsModule],
+    }).compileComponents();
   });
 
   beforeEach(() => {
@@ -22,4 +24,10 @@ describe('ModalFilterComponent', () => {
   it('should create', () => {
     expect(component).toBeTruthy();
   });
+
+  it('should emit filters', () => {
+    spyOn(component.searchEvent, 'emit');
+    component.emitFilter();
+    expect(component.searchEvent.emit).toHaveBeenCalled();
+  });
 });
diff --git a/src/app/structure-list/components/modal-filter/modal-filter.component.ts b/src/app/structure-list/components/modal-filter/modal-filter.component.ts
index 3be4344db..ff6050e60 100644
--- a/src/app/structure-list/components/modal-filter/modal-filter.component.ts
+++ b/src/app/structure-list/components/modal-filter/modal-filter.component.ts
@@ -17,7 +17,7 @@ export class ModalFilterComponent implements OnInit {
   }
   @Input() public modalType: string;
   @Input() public categories: Category[];
-  @Input() public modules: Module[];
+  @Input() public modules: Module[] = [];
   @Output() searchEvent = new EventEmitter();
   // Checkbox variable
   checkedModules: Module[];
@@ -29,12 +29,12 @@ export class ModalFilterComponent implements OnInit {
   }
 
   // Return index of a specific module in array modules
-  public getIndex(id: number, categ: string): number {
+  private getIndex(id: number, categ: string): number {
     return this.checkedModules.findIndex((m: Module) => m.id === id && m.text === categ);
   }
 
   // Management of the checkbox event (Check / Uncheck)
-  public onCheckboxChange(event, categ: string): void {
+  private onCheckboxChange(event, categ: string): void {
     const checkValue: number = parseInt(event.target.value, 10);
     if (event.target.checked) {
       this.checkedModules.push(new Module(checkValue, categ));
@@ -47,7 +47,7 @@ export class ModalFilterComponent implements OnInit {
   }
 
   // Clear only filters in the current modal
-  public clearFilters(): void {
+  private clearFilters(): void {
     this.categories.forEach((categ: Category) => {
       categ.modules.forEach((module: Module) => {
         if (this.getIndex(module.id, categ.name) > -1) {
diff --git a/src/app/structure-list/components/search/search.component.scss b/src/app/structure-list/components/search/search.component.scss
index 5b8368862..279b2772b 100644
--- a/src/app/structure-list/components/search/search.component.scss
+++ b/src/app/structure-list/components/search/search.component.scss
@@ -101,7 +101,6 @@
     }
   }
   label {
-    //display: inline-grid;
     align-items: center;
     grid-template-columns: min-content auto;
     display: inline-grid;
diff --git a/src/app/structure-list/components/search/search.component.spec.ts b/src/app/structure-list/components/search/search.component.spec.ts
index 790ae3595..a5507ed76 100644
--- a/src/app/structure-list/components/search/search.component.spec.ts
+++ b/src/app/structure-list/components/search/search.component.spec.ts
@@ -5,7 +5,7 @@ import { Filter } from '../../models/filter.model';
 import { Module } from '../../models/module.model';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { SearchComponent } from './search.component';
-import { SearchService } from '../../services/search.service';
+import { TypeModal } from '../../enum/typeModal.enum';
 
 describe('SearchComponent', () => {
   let component: SearchComponent;
@@ -42,7 +42,7 @@ describe('SearchComponent', () => {
     for (let i = 0; i < 7; i++) {
       categories[0].modules.push(new Module(5 + i, 'CAF' + i));
     }
-    component.openModal('accompagnement');
+    component.openModal(TypeModal[0]);
     expect(component.categories).toEqual(categories);
   });
 });
diff --git a/src/app/structure-list/components/search/search.component.ts b/src/app/structure-list/components/search/search.component.ts
index 1fb011826..6db165c6c 100644
--- a/src/app/structure-list/components/search/search.component.ts
+++ b/src/app/structure-list/components/search/search.component.ts
@@ -25,7 +25,7 @@ export class SearchComponent implements OnInit {
   // Form search input
   private searchForm: FormGroup;
   // Modal variable
-  private categories: Category[];
+  public categories: Category[];
   private modalTypeOpened: string;
   // Checkbox variable
   private checkedModulesFilter: Module[];
@@ -35,7 +35,6 @@ export class SearchComponent implements OnInit {
     this.categories = [];
 
     this.checkedModulesFilter = new Array();
-    console.log(TypeModal[0]);
   }
 
   // Accessor to template angular.
diff --git a/src/app/structure-list/services/search.service.spec.ts b/src/app/structure-list/services/search.service.spec.ts
index d8b757560..4da5c5954 100644
--- a/src/app/structure-list/services/search.service.spec.ts
+++ b/src/app/structure-list/services/search.service.spec.ts
@@ -1,6 +1,9 @@
 import { TestBed } from '@angular/core/testing';
 import { HttpClientTestingModule } from '@angular/common/http/testing';
 import { SearchService } from './search.service';
+import { StructureCounter } from '../models/structureCounter.model';
+import { Category } from '../models/category.model';
+import { Module } from '../models/module.model';
 
 describe('SearchService', () => {
   let service: SearchService;
@@ -15,4 +18,20 @@ describe('SearchService', () => {
   it('should be created', () => {
     expect(service).toBeTruthy();
   });
+
+  it('should return category with number of modules inside', () => {
+    const structureCount: StructureCounter[] = [
+      { id: 176, count: 2 },
+      { id: 172, count: 1 },
+      { id: 173, count: 1 },
+    ];
+    const m1: Module = { id: 176, text: 'strm1', count: 0 };
+    const m2: Module = { id: 173, text: 'strm2', count: 0 };
+    const m3: Module = { id: 172, text: 'strm3', count: 0 };
+    const category: Category = { name: 'strCateg', modules: [m1, m2, m3] };
+    const result = service.setCountModules(category, structureCount);
+    expect(result.modules[0].count).toBe(2);
+    expect(result.modules[1].count).toBe(1);
+    expect(result.modules[2].count).toBe(1);
+  });
 });
-- 
GitLab