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