2 import { async, ComponentFixture, TestBed } from "@angular/core/testing";
3 import {ConfigureFn, configureTests} from "../../../../jest/test-config.helper";
4 import {NO_ERRORS_SCHEMA} from "@angular/core";
5 import { CacheService} from "../../../../app/services-ng2";
6 import {CatalogComponent} from "./catalog.component";
7 import { SdcUiServices } from "onap-ui-angular";
8 import { SdcConfigToken } from "../../config/sdc-config.config";
9 import { SdcMenuToken} from "../../config/sdc-menu.config";
10 import { ResourceNamePipe } from "../../pipes/resource-name.pipe";
11 import { CatalogService } from "../../services/catalog.service";
12 import {TranslatePipe} from "../../shared/translator/translate.pipe";
13 import {TranslateService} from "../../shared/translator/translate.service";
14 import {Observable} from "rxjs";
15 import {LoaderService} from "onap-ui-angular/dist/loader/loader.service";
16 import {categoriesElements} from "../../../../jest/mocks/categories.mock";
17 import {sdcMenu} from "../../../../jest/mocks/sdc-menu.mock";
18 import {IEntityFilterObject} from "../../pipes/entity-filter.pipe";
24 describe('catalog component', () => {
26 let fixture: ComponentFixture<CatalogComponent>;
29 let catalogSelectorItemsMock;
30 let checkListModelMock;
32 let checkboxesFilterMock;
33 let checkboxesFilterKeysMock;
38 let cacheServiceMock: Partial<CacheService>;
39 let loaderServiceMock: Partial<LoaderService>;
40 let catalogServiceMock: Partial<CatalogService>;
46 console.info = jest.fn();
47 catalogSelectorItemsMock = [
50 title: 'Active Items',
59 checkListModelMock = {
61 {label: "VF", disabled: false, isChecked: false, testId: "checkbox-vf", value: "Resource.VF"},
62 {label: "VFC", disabled: false, isChecked: false, testId: "checkbox-vfc", value: "Resource.VFC",
63 subLevelChecklist: {checkboxes:[{label: "VFD", disabled: false, isChecked: false, testId: "checkbox-vfd", value: "Resource.VFD"}],
64 selectedValues: ["Resource.VFD"]}
66 {label: "CR", disabled: false, isChecked: false, testId: "checkbox-cr", value: "Resource.CR",
67 subLevelChecklist: { checkboxes:[{label: "VF", disabled: false, isChecked: false, testId: "checkbox-vf", value: "Resource.VF"}],
70 selectedValues: ["Resource.VF"]
74 categories: ["resourceNewCategory.allotted resource.allotted resource", "resourceNewCategory.allotted resource.contrail route", "resourceNewCategory.application l4+.application server"],
75 components: ["Resource.VF", "Resource.VFC"],
76 order: ["lastUpdateDate", true],
77 statuses: ["inDesign"],
80 checkboxesFilterMock = {
81 selectedCategoriesModel: ["serviceNewCategory.network l4+", "resourceNewCategory.allotted resource.allotted resource"],
82 selectedComponentTypes: ["Resource.VF", "Resource.VFC"],
83 selectedResourceSubTypes: ["VF", "VFC"],
84 selectedStatuses: ["NOT_CERTIFIED_CHECKOUT", "NOT_CERTIFIED_CHECKIN"]
86 checkboxesFilterKeysMock = {
87 categories:{_main: ["serviceNewCategory.network l4+"]},
88 componentTypes: { Resource: ["Resource.VF", "Resource.VFC"], _main: ["Resource.VFC"]},
89 statuses: {_main: ["inDesign"]}
97 get: jest.fn().mockImplementation(()=> categoriesElements),
99 contains: jest.fn().mockImplementation(()=> true)
101 loaderServiceMock = {
103 deactivate: jest.fn()
105 catalogServiceMock = {
106 //TODO create mock function of archive
107 getCatalog: jest.fn().mockImplementation(()=> Observable.of(categoriesElements)),
108 getArchiveCatalog: jest.fn().mockImplementation(()=> Observable.of(categoriesElements))
110 const configure: ConfigureFn = testBed => {
111 testBed.configureTestingModule({
112 declarations: [CatalogComponent, TranslatePipe],
114 schemas: [NO_ERRORS_SCHEMA],
116 {provide: SdcConfigToken, useValue: {}},
117 {provide: SdcMenuToken, useValue: sdcMenu},
118 {provide: "$state", useValue: stateServiceMock },
119 {provide: CacheService, useValue: cacheServiceMock },
120 {provide: CatalogService, useValue: catalogServiceMock },
121 {provide: ResourceNamePipe, useValue: {}},
122 {provide: SdcUiServices.LoaderService, useValue: loaderServiceMock },
123 {provide: TranslateService, useValue: {}}
128 configureTests(configure).then(testBed => {
129 fixture = testBed.createComponent(CatalogComponent);
135 it('should match current snapshot of catalog component', () => {
136 expect(fixture).toMatchSnapshot();
139 it ('should call on catalog component onInit' , () => {
140 const component = TestBed.createComponent(CatalogComponent);
141 component.componentInstance.initGui = jest.fn();
142 component.componentInstance.initLeftSwitch = jest.fn();
143 component.componentInstance.initScopeMembers = jest.fn();
144 component.componentInstance.loadFilterParams = jest.fn();
145 component.componentInstance.initCatalogData = jest.fn();
146 component.componentInstance.ngOnInit();
147 expect(component.componentInstance.initGui).toHaveBeenCalled();
148 expect(component.componentInstance.initLeftSwitch).toHaveBeenCalled();
149 expect(component.componentInstance.initScopeMembers).toHaveBeenCalled();
150 expect(component.componentInstance.loadFilterParams).toHaveBeenCalled();
151 expect(component.componentInstance.initCatalogData).toHaveBeenCalled();
154 it ('should call on catalog component initLeftSwitch' , () => {
155 const component = TestBed.createComponent(CatalogComponent);
156 component.componentInstance.initLeftSwitch();
157 expect(component.componentInstance.showCatalogSelector).toEqual(false);
158 expect(component.componentInstance.catalogSelectorItems).toEqual(catalogSelectorItemsMock);
159 expect(component.componentInstance.selectedCatalogItem).toEqual(catalogSelectorItemsMock[0]);
162 it ('should call on catalog component initCatalogData and selectedCatalogItem is archive ' , () => {
163 const component = TestBed.createComponent(CatalogComponent);
164 component.componentInstance.getArchiveCatalogItems = jest.fn();
165 component.componentInstance.selectedCatalogItem = catalogSelectorItemsMock[1];
166 component.componentInstance.initCatalogData();
167 expect(component.componentInstance.getArchiveCatalogItems).toHaveBeenCalled();
170 it ('should call on catalog component initCatalogData and selectedCatalogItem is active ' , () => {
171 const component = TestBed.createComponent(CatalogComponent);
172 component.componentInstance.getActiveCatalogItems = jest.fn();
173 component.componentInstance.selectedCatalogItem = catalogSelectorItemsMock[0];
174 component.componentInstance.initCatalogData();
175 expect(component.componentInstance.getActiveCatalogItems).toHaveBeenCalled();
178 it ('should call on catalog component initScopeMembers' , () => {
179 const component = TestBed.createComponent(CatalogComponent);
180 component.componentInstance.makeSortedCategories = jest.fn().mockImplementation(()=> categoriesElements);
181 component.componentInstance.initCategoriesMap = jest.fn();
182 component.componentInstance.initCheckboxesFilter = jest.fn();
183 component.componentInstance.initCheckboxesFilterKeys = jest.fn();
184 component.componentInstance.buildCheckboxLists = jest.fn();
185 component.componentInstance.initScopeMembers();
186 expect(component.componentInstance.numberOfItemToDisplay).toEqual(0);
187 expect(component.componentInstance.categories).toEqual(categoriesElements);
188 expect(component.componentInstance.confStatus).toEqual(component.componentInstance.sdcMenu.statuses);
189 expect(component.componentInstance.expandedSection).toEqual( ["type", "category", "status"]);
190 expect(component.componentInstance.catalogItems).toEqual([]);
191 expect(component.componentInstance.search).toEqual({FilterTerm: ""});
192 expect(component.componentInstance.initCategoriesMap).toHaveBeenCalled();
193 expect(component.componentInstance.initCheckboxesFilter).toHaveBeenCalled();
194 expect(component.componentInstance.initCheckboxesFilterKeys).toHaveBeenCalled();
195 expect(component.componentInstance.buildCheckboxLists).toHaveBeenCalled();
196 expect(component.componentInstance.version).toEqual(categoriesElements);
197 expect(component.componentInstance.sortBy).toEqual('lastUpdateDate');
198 expect(component.componentInstance.reverse).toEqual(true);
201 it ('should call on catalog component buildCheckboxLists ' , () => {
202 const component = TestBed.createComponent(CatalogComponent);
203 component.componentInstance.buildChecklistModelForTypes = jest.fn();
204 component.componentInstance.buildChecklistModelForCategories = jest.fn();
205 component.componentInstance.buildChecklistModelForStatuses = jest.fn();
206 component.componentInstance.buildCheckboxLists();
207 expect(component.componentInstance.buildChecklistModelForTypes).toHaveBeenCalled();
208 expect(component.componentInstance.buildChecklistModelForCategories).toHaveBeenCalled();
209 expect(component.componentInstance.buildChecklistModelForStatuses).toHaveBeenCalled();
212 it ('should call on catalog component getTestIdForCheckboxByText ' , () => {
213 const component = TestBed.createComponent(CatalogComponent);
214 let testId = component.componentInstance.getTestIdForCheckboxByText("catalog filter");
215 expect(testId).toEqual("checkbox-catalogfilter");
218 it ('should call on catalog component selectLeftSwitchItem with active catalog' , () => {
219 const component = TestBed.createComponent(CatalogComponent);
220 component.componentInstance.selectedCatalogItem = catalogSelectorItemsMock[1];
221 component.componentInstance.getActiveCatalogItems = jest.fn();
222 component.componentInstance.changeFilterParams = jest.fn();
223 component.componentInstance.selectLeftSwitchItem(catalogSelectorItemsMock[0]);
224 expect(component.componentInstance.getActiveCatalogItems).toBeCalledWith(true);
225 expect(component.componentInstance.changeFilterParams).toBeCalledWith({"active": true});
228 it ('should call on catalog component selectLeftSwitchItem with archive catalog' , () => {
229 const component = TestBed.createComponent(CatalogComponent);
230 component.componentInstance.selectedCatalogItem = catalogSelectorItemsMock[0];
231 component.componentInstance.getArchiveCatalogItems = jest.fn();
232 component.componentInstance.changeFilterParams = jest.fn();
233 component.componentInstance.selectLeftSwitchItem(catalogSelectorItemsMock[1]);
234 expect(component.componentInstance.getArchiveCatalogItems).toBeCalledWith(true);
235 expect(component.componentInstance.changeFilterParams).toBeCalledWith({"active": false});
238 it ('should call on catalog component buildChecklistModelForTypes' , () => {
239 const component = TestBed.createComponent(CatalogComponent);
240 component.componentInstance.checkboxesFilterKeys = checkboxesFilterKeysMock;
241 component.componentInstance.buildChecklistModelForTypes();
242 expect(component.componentInstance.componentTypes).toEqual({ Resource: ['VF', 'VFC', 'CR', 'PNF', 'CP', 'VL'],
244 expect(component.componentInstance.typesChecklistModel.checkboxes.length).toEqual(2);
247 it ('should call on catalog component buildChecklistModelForCategories' , () => {
248 const component = TestBed.createComponent(CatalogComponent);
249 component.componentInstance.checkboxesFilterKeys = checkboxesFilterKeysMock;
250 component.componentInstance.categories = categoriesElements;
251 component.componentInstance.buildChecklistModelForCategories();
252 expect(component.componentInstance.categoriesChecklistModel.checkboxes).not.toEqual(null);
255 it ('should call on catalog component buildChecklistModelForStatuses' , () => {
256 const component = TestBed.createComponent(CatalogComponent);
257 component.componentInstance.checkboxesFilterKeys = checkboxesFilterKeysMock;
258 component.componentInstance.categories = categoriesElements;
259 component.componentInstance.confStatus = sdcMenu.statuses;
260 component.componentInstance.buildChecklistModelForStatuses();
261 expect(component.componentInstance.statusChecklistModel.checkboxes.length).toEqual(3);
264 it ('should call on catalog component initCheckboxesFilter' , () => {
265 const component = TestBed.createComponent(CatalogComponent);
266 component.componentInstance.initCheckboxesFilter();
267 expect(component.componentInstance.checkboxesFilter.selectedComponentTypes).toEqual([]);
268 expect(component.componentInstance.checkboxesFilter.selectedResourceSubTypes).toEqual([]);
269 expect(component.componentInstance.checkboxesFilter.selectedCategoriesModel).toEqual([]);
270 expect(component.componentInstance.checkboxesFilter.selectedStatuses).toEqual([]);
273 it ('should call on catalog component initCheckboxesFilterKeys' , () => {
274 const component = TestBed.createComponent(CatalogComponent);
275 component.componentInstance.initCheckboxesFilterKeys();
276 expect(component.componentInstance.checkboxesFilterKeys.componentTypes).toEqual({ _main: [] });
277 expect(component.componentInstance.checkboxesFilterKeys.categories).toEqual({ _main: [] });
278 expect(component.componentInstance.checkboxesFilterKeys.statuses).toEqual({ _main: [] });
281 it ('should call on catalog component initCategoriesMap' , () => {
282 const component = TestBed.createComponent(CatalogComponent);
283 const categoriesMap = component.componentInstance.initCategoriesMap(categoriesElements);
284 expect(categoriesMap["resourceNewCategory.allotted resource.allotted resource"].parent.name).toEqual("Allotted Resource");
285 expect(categoriesMap["resourceNewCategory.generic"].category.uniqueId).toEqual("resourceNewCategory.generic");
286 expect(categoriesMap["serviceNewCategory.voip call control"].category.name).toEqual("VoIP Call Control");
291 it ('should call on catalog component selectLeftSwitchItem with active and selectedCatalogItem equal to archived' , () => {
292 const component = TestBed.createComponent(CatalogComponent);
293 component.componentInstance.getActiveCatalogItems = jest.fn();
294 component.componentInstance.changeFilterParams = jest.fn();
295 component.componentInstance.selectedCatalogItem = catalogSelectorItemsMock[1]
296 component.componentInstance.selectLeftSwitchItem(catalogSelectorItemsMock[0]);
297 expect(component.componentInstance.getActiveCatalogItems).toHaveBeenCalledWith(true);
298 expect(component.componentInstance.changeFilterParams).toHaveBeenCalledWith({active: true})
301 it ('should call on catalog component selectLeftSwitchItem with archived and selectedCatalogItem equal to active' , () => {
302 const component = TestBed.createComponent(CatalogComponent);
303 component.componentInstance.getArchiveCatalogItems = jest.fn();
304 component.componentInstance.changeFilterParams = jest.fn();
305 component.componentInstance.selectedCatalogItem = catalogSelectorItemsMock[0]
306 component.componentInstance.selectLeftSwitchItem(catalogSelectorItemsMock[1]);
307 expect(component.componentInstance.getArchiveCatalogItems).toBeCalledWith(true);
308 expect(component.componentInstance.changeFilterParams).toHaveBeenCalledWith({active: false})
311 it ('should call on catalog component sectionClick with section contains in expandedSection' , () => {
312 const component = TestBed.createComponent(CatalogComponent);
313 component.componentInstance.expandedSection = ["type", "category", "status"];
314 component.componentInstance.sectionClick("type");
315 expect(component.componentInstance.expandedSection).toEqual(["category", "status"])
318 it ('should call on catalog component sectionClick with section not contains in expandedSection' , () => {
319 const component = TestBed.createComponent(CatalogComponent);
320 component.componentInstance.expandedSection = ["type", "category", "status"];
321 component.componentInstance.sectionClick("newItem");
322 expect(component.componentInstance.expandedSection).toEqual(["type", "category", "status", "newItem"])
325 it ('should call on catalog component makeFilterParamsFromCheckboxes with selected values' , () => {
326 const component = TestBed.createComponent(CatalogComponent);
327 expect(component.componentInstance.makeFilterParamsFromCheckboxes(checkListModelMock)).toEqual(["Resource.VF", "Resource.VFD"])
330 it ('should call on catalog component order with resourceName value' , () => {
331 const component = TestBed.createComponent(CatalogComponent);
332 component.componentInstance.changeFilterParams = jest.fn();
333 component.componentInstance.filterParams = filterParamsMock
334 component.componentInstance.order("resourceName");
335 expect(component.componentInstance.changeFilterParams).toHaveBeenCalledWith( {"order": ["resourceName", false]})
338 it ('should call on catalog component goToComponent' , () => {
339 const component = TestBed.createComponent(CatalogComponent);
340 const componentMock = { uniqueId: "d3e80fed-12f6-4f29-aeb1-771050e5db72", componentType: "RESOURCE"}
341 component.componentInstance.goToComponent(componentMock);
342 expect(stateServiceMock.go).toHaveBeenCalledWith('workspace.general', {id: componentMock.uniqueId, type: componentMock.componentType.toLowerCase()})
346 it ('should call on catalog component getNumOfElements for active catalog' , () => {
347 const component = TestBed.createComponent(CatalogComponent);
348 component.componentInstance.selectedCatalogItem = catalogSelectorItemsMock[0]
349 expect(component.componentInstance.getNumOfElements(3)).toEqual("3 <b>Active</b> Elements found")
353 it ('should call on catalog component raiseNumberOfElementToDisplay with empty catalogFilteredItems' , () => {
354 const component = TestBed.createComponent(CatalogComponent);
355 component.componentInstance.catalogFilteredItems = []
356 component.componentInstance.raiseNumberOfElementToDisplay(true);
357 expect(component.componentInstance.numberOfItemToDisplay).toEqual(NaN);
358 expect(component.componentInstance.catalogFilteredSlicedItems).toEqual([]);
361 it ('should call on catalog component raiseNumberOfElementToDisplay with full catalogFilteredItems' , () => {
362 const component = TestBed.createComponent(CatalogComponent);
363 component.componentInstance.catalogFilteredItems = [1 , 2 , 3, 4, 5, 6]
364 component.componentInstance.numberOfItemToDisplay = 2;
365 component.componentInstance.raiseNumberOfElementToDisplay(false);
366 expect(component.componentInstance.numberOfItemToDisplay).toEqual(6);
367 expect(component.componentInstance.catalogFilteredSlicedItems).toEqual([1 , 2 , 3, 4, 5, 6]);
370 it ('should call on catalog component componentShouldReload return false' , () => {
371 const component = TestBed.createComponent(CatalogComponent);
372 component.componentInstance.isDefaultFilter = jest.fn().mockImplementation(() => false);
373 cacheServiceMock.get.mockImplementation(()=> "mockConstructor");
374 let componentShouldReload = component.componentInstance.componentShouldReload();
375 expect(component.componentInstance.cacheService.get()).toEqual(component.componentInstance.$state.current.name);
376 expect(component.componentInstance.cacheService.contains()).toEqual(true);
377 expect(component.componentInstance.isDefaultFilter).toHaveBeenCalled();
378 expect(componentShouldReload).toEqual(false);
381 it ('should call on catalog component componentShouldReload return true' , () => {
382 const component = TestBed.createComponent(CatalogComponent);
383 component.componentInstance.isDefaultFilter = jest.fn();
384 let componentShouldReload = component.componentInstance.componentShouldReload();
385 expect(component.componentInstance.cacheService.get()).not.toEqual(component.componentInstance.$state.current.name);
386 expect(component.componentInstance.cacheService.contains()).toEqual(true);
387 expect(componentShouldReload).toEqual(true);
390 it ('should call on catalog component getActiveCatalogItems with true' , () => {
391 const component = TestBed.createComponent(CatalogComponent);
392 let resp = component.componentInstance.cacheService.get();
393 component.componentInstance.updateCatalogItems = jest.fn().mockImplementation((resp) => {});
394 component.componentInstance.getActiveCatalogItems(true);
395 expect(component.componentInstance.loaderService.activate).toHaveBeenCalled();
396 expect(component.componentInstance.updateCatalogItems).toHaveBeenCalledWith(resp);
397 expect(component.componentInstance.loaderService.deactivate).toHaveBeenCalled();
398 expect(component.componentInstance.cacheService.set).toHaveBeenCalledWith('breadcrumbsComponentsState', "mockConstructor");
399 expect(component.componentInstance.cacheService.set).toHaveBeenCalledWith('breadcrumbsComponents', categoriesElements);
400 expect(component.componentInstance.catalogService.getCatalog).toHaveBeenCalled();
403 it ('should call on catalog component getActiveCatalogItems with false' , () => {
404 const component = TestBed.createComponent(CatalogComponent);
405 component.componentInstance.componentShouldReload = jest.fn();
406 component.componentInstance.updateCatalogItems = jest.fn().mockImplementation((resp) => {});
407 component.componentInstance.getActiveCatalogItems(false);
408 expect(component.componentInstance.componentShouldReload).toHaveBeenCalled();
409 let resp = component.componentInstance.cacheService.get();
410 expect(component.componentInstance.updateCatalogItems).toHaveBeenCalledWith(resp);
413 it ('should call on catalog component getActiveCatalogItems with true observable return error' , () => {
414 const component = TestBed.createComponent(CatalogComponent);
415 catalogServiceMock.getCatalog.mockImplementation(()=> Observable.throwError('error'));
416 component.componentInstance.getActiveCatalogItems(true);
417 expect(component.componentInstance.loaderService.activate).toHaveBeenCalled();
418 expect(console.info).toHaveBeenCalledWith('Failed to load catalog CatalogViewModel::getActiveCatalogItems');
419 expect(component.componentInstance.loaderService.deactivate).toHaveBeenCalled();
420 expect(component.componentInstance.catalogService.getCatalog).toHaveBeenCalled();
423 it ('should call on catalog component getArchiveCatalogItems with true' , () => {
424 const component = TestBed.createComponent(CatalogComponent);
425 const resp = component.componentInstance.cacheService.get();
426 component.componentInstance.updateCatalogItems = jest.fn().mockImplementation((resp) => {});
427 component.componentInstance.getArchiveCatalogItems(true);
428 expect(component.componentInstance.loaderService.activate).toHaveBeenCalled();
429 expect(component.componentInstance.catalogService.getArchiveCatalog).toHaveBeenCalled();
430 expect(component.componentInstance.cacheService.set).toHaveBeenCalledWith('archiveComponents', categoriesElements);
431 expect(component.componentInstance.loaderService.deactivate).toHaveBeenCalled();
432 expect(component.componentInstance.updateCatalogItems).toHaveBeenCalledWith(resp)
435 it ('should call on catalog component getArchiveCatalogItems with false' , () => {
436 const component = TestBed.createComponent(CatalogComponent);
437 component.componentInstance.updateCatalogItems = jest.fn().mockImplementation((resp) => Observable.of());
438 component.componentInstance.getArchiveCatalogItems(false);
439 expect(component.componentInstance.cacheService.contains).toHaveBeenCalled();
440 expect(component.componentInstance.cacheService.get).toHaveBeenCalled();
441 let resp = component.componentInstance.cacheService.get();
442 expect(component.componentInstance.updateCatalogItems).toHaveBeenCalledWith(resp);
445 it ('should call on catalog component getArchiveCatalogItems with true observable return error' , () => {
446 const component = TestBed.createComponent(CatalogComponent);
447 catalogServiceMock.getArchiveCatalog.mockImplementation(()=> Observable.throwError('error'));
448 component.componentInstance.getArchiveCatalogItems(true);
449 expect(component.componentInstance.loaderService.activate).toHaveBeenCalled();
450 expect(component.componentInstance.catalogService.getArchiveCatalog).toHaveBeenCalled();
451 expect(component.componentInstance.loaderService.deactivate).toHaveBeenCalled();
452 expect(console.info).toHaveBeenCalledWith('Failed to load catalog CatalogViewModel::getArchiveCatalogItems');
455 it ('should call on catalog component updateCatalogItems' , () => {
456 const component = TestBed.createComponent(CatalogComponent);
457 component.componentInstance.filterCatalogItems = jest.fn();
458 component.componentInstance.addFilterTermToComponent = jest.fn();
459 component.componentInstance.updateCatalogItems([1, 2, 3]);
460 expect(component.componentInstance.catalogItems).toEqual([1, 2, 3]);
461 expect(component.componentInstance.addFilterTermToComponent).toHaveBeenCalled();
462 expect(component.componentInstance.filterCatalogItems).toHaveBeenCalled();
465 it ('should call on catalog component applyFilterParamsToView' , () => {
466 const component = TestBed.createComponent(CatalogComponent);
467 component.componentInstance.initCheckboxesFilter = jest.fn();
468 component.componentInstance.filterCatalogCategories = jest.fn();
469 component.componentInstance.applyFilterParamsComponents = jest.fn();
470 component.componentInstance.applyFilterParamsCategories = jest.fn();
471 component.componentInstance.applyFilterParamsStatuses = jest.fn();
472 component.componentInstance.applyFilterParamsOrder = jest.fn();
473 component.componentInstance.applyFilterParamsTerm = jest.fn();
474 component.componentInstance.filterCatalogItems = jest.fn();
475 component.componentInstance.applyFilterParamsToView(filterParamsMock);
476 expect(component.componentInstance.initCheckboxesFilter).toHaveBeenCalled();
477 expect(component.componentInstance.filterCatalogCategories).toHaveBeenCalled();
478 expect(component.componentInstance.applyFilterParamsComponents).toHaveBeenCalledWith(filterParamsMock);
479 expect(component.componentInstance.applyFilterParamsCategories).toHaveBeenCalledWith(filterParamsMock);
480 expect(component.componentInstance.applyFilterParamsStatuses).toHaveBeenCalledWith(filterParamsMock);
481 expect(component.componentInstance.applyFilterParamsOrder).toHaveBeenCalledWith(filterParamsMock);
482 expect(component.componentInstance.applyFilterParamsTerm).toHaveBeenCalledWith(filterParamsMock);
483 expect(component.componentInstance.filterCatalogItems).toHaveBeenCalled();
486 it ('should call on catalog component filterCatalogCategories' , () => {
487 const component = TestBed.createComponent(CatalogComponent);
488 component.componentInstance.makeFilteredCategories = jest.fn();
489 component.componentInstance.buildChecklistModelForCategories = jest.fn();
490 component.componentInstance.categories = categoriesElements;
491 component.componentInstance.checkboxesFilter = {selectedComponentTypes: ["firstType", "secondType"]};
492 component.componentInstance.filterCatalogCategories();
493 expect(component.componentInstance.makeFilteredCategories).toHaveBeenCalledWith(categoriesElements, ["firstType", "secondType"]);
494 expect(component.componentInstance.buildChecklistModelForCategories).toHaveBeenCalled();
497 it ('should call on catalog component filterCatalogItems' , () => {
498 const component = TestBed.createComponent(CatalogComponent);
499 component.componentInstance.makeFilteredItems = jest.fn().mockImplementation(() => [1,2,3]);
500 component.componentInstance.raiseNumberOfElementToDisplay = jest.fn();
501 component.componentInstance.catalogItems = ["firstComponent", "secondComponent"];
502 component.componentInstance.checkboxesFilter = {};
503 component.componentInstance.search = {};
504 component.componentInstance.sortBy = "";
505 component.componentInstance.reverse = true;
506 component.componentInstance.numberOfItemToDisplay = 2;
507 // component.componentInstance.catalogFilteredItems = component.componentInstance.makeFilteredItems();
508 component.componentInstance.filterCatalogItems();
509 expect(component.componentInstance.makeFilteredItems).toHaveBeenCalledWith(["firstComponent", "secondComponent"], {}, {}, "",true);
510 expect(component.componentInstance.raiseNumberOfElementToDisplay).toHaveBeenCalledWith(true);
511 expect(component.componentInstance.catalogFilteredSlicedItems).toEqual([1,2]);
514 it ('should call on catalog component applyFilterParamsToCheckboxes' , () => {
515 const component = TestBed.createComponent(CatalogComponent);
516 component.componentInstance.applyFilterParamsToCheckboxes(checkListModelMock, ["Resource.CR", "Resource.VFD", "Resource.VF"]);
517 expect(checkListModelMock.selectedValues).toEqual(["Resource.VF","Resource.CR"]);
518 expect(checkListModelMock.checkboxes[1].subLevelChecklist.selectedValues).toEqual(["Resource.VFD"]);
519 expect(checkListModelMock.checkboxes[2].subLevelChecklist.selectedValues).toEqual(["Resource.VF"])
522 it ('should call on catalog component applyFilterParamsComponents and filterParams.active equal true' , () => {
523 const component = TestBed.createComponent(CatalogComponent);
524 component.componentInstance.applyFilterParamsToCheckboxes = jest.fn();
525 component.componentInstance.checkboxesFilterKeys = checkboxesFilterKeysMock;
526 component.componentInstance.checkboxesFilter = checkboxesFilterMock;
527 component.componentInstance.catalogSelectorItems = catalogSelectorItemsMock;
528 component.componentInstance.typesChecklistModel = checkListModelMock;
529 component.componentInstance.applyFilterParamsComponents(filterParamsMock);
530 expect(component.componentInstance.applyFilterParamsToCheckboxes).toHaveBeenCalledWith(checkListModelMock, filterParamsMock.components);
531 expect(component.componentInstance.checkboxesFilter.selectedComponentTypes).toEqual(["Resource.VFC"]);
532 expect(component.componentInstance.checkboxesFilter.selectedResourceSubTypes).toEqual(["VF", "VFC"]);
533 expect(component.componentInstance.selectedCatalogItem).toEqual(catalogSelectorItemsMock[0]);
536 it ('should call on catalog component applyFilterParamsComponents and filterParams.active equal false' , () => {
537 const component = TestBed.createComponent(CatalogComponent);
538 component.componentInstance.applyFilterParamsToCheckboxes = jest.fn();
539 filterParamsMock.active = false;
540 component.componentInstance.checkboxesFilterKeys = checkboxesFilterKeysMock;
541 component.componentInstance.checkboxesFilter = checkboxesFilterMock;
542 component.componentInstance.catalogSelectorItems = catalogSelectorItemsMock;
543 component.componentInstance.typesChecklistModel = checkListModelMock;
544 component.componentInstance.applyFilterParamsComponents(filterParamsMock);
545 expect(component.componentInstance.applyFilterParamsToCheckboxes).toHaveBeenCalledWith(checkListModelMock, filterParamsMock.components);
546 expect(component.componentInstance.checkboxesFilter.selectedComponentTypes).toEqual(["Resource.VFC"]);
547 expect(component.componentInstance.checkboxesFilter.selectedResourceSubTypes).toEqual(["VF", "VFC"]);
548 expect(component.componentInstance.selectedCatalogItem).toEqual(catalogSelectorItemsMock[1]);
551 it ('should call on catalog component applyFilterParamsCategories' , () => {
552 const component = TestBed.createComponent(CatalogComponent);
553 component.componentInstance.applyFilterParamsToCheckboxes = jest.fn();
554 component.componentInstance.categoriesChecklistModel = checkListModelMock;
555 component.componentInstance.checkboxesFilterKeys = checkboxesFilterKeysMock;
556 component.componentInstance.checkboxesFilter = checkboxesFilterMock;
557 component.componentInstance.applyFilterParamsCategories(filterParamsMock);
558 expect(component.componentInstance.applyFilterParamsToCheckboxes).toHaveBeenCalledWith(checkListModelMock, filterParamsMock.categories);
559 expect(component.componentInstance.checkboxesFilter.selectedCategoriesModel).toEqual(["serviceNewCategory.network l4+"]);
562 it ('should call on catalog component applyFilterParamsStatuses' , () => {
563 const component = TestBed.createComponent(CatalogComponent);
564 component.componentInstance.applyFilterParamsToCheckboxes = jest.fn();
566 component.componentInstance.statusChecklistModel = checkListModelMock;
567 component.componentInstance.checkboxesFilterKeys = checkboxesFilterKeysMock;
568 component.componentInstance.checkboxesFilter = checkboxesFilterMock;
569 component.componentInstance.confStatus = sdcMenu.statuses;
570 component.componentInstance.applyFilterParamsStatuses(filterParamsMock);
571 expect(component.componentInstance.applyFilterParamsToCheckboxes).toHaveBeenCalledWith(checkListModelMock, filterParamsMock.statuses);
572 expect(component.componentInstance.checkboxesFilter.selectedStatuses).toEqual(["NOT_CERTIFIED_CHECKOUT", "NOT_CERTIFIED_CHECKIN"]);
575 it ('should call on catalog component applyFilterParamsOrder' , () => {
576 const component = TestBed.createComponent(CatalogComponent);
577 component.componentInstance.applyFilterParamsOrder(filterParamsMock);
578 expect(component.componentInstance.sortBy).toEqual("lastUpdateDate");
579 expect(component.componentInstance.reverse).toEqual( true);
582 it ('should call on catalog component applyFilterParamsTerm' , () => {
583 const component = TestBed.createComponent(CatalogComponent);
584 component.componentInstance.applyFilterParamsTerm(filterParamsMock);
585 expect(component.componentInstance.search.filterTerm).toEqual("Vf");
588 // it ('should call on catalog component loadFilterParams' , () => {
589 // const component = TestBed.createComponent(CatalogComponent);
590 // component.componentInstance.$state = {params: {}};
591 // component.componentInstance.loadFilterParams();
594 it ('should call on catalog component changeFilterParams' , () => {
595 const component = TestBed.createComponent(CatalogComponent);
596 component.componentInstance.applyFilterParamsToView = jest.fn();
597 component.componentInstance.filterParams = { active: true, categories: [], components: [], order: ["lastUpdateDate", true], statuses: [], term: ""};
598 component.componentInstance.$state.go = jest.fn().mockImplementation(() => Promise.resolve({ json: () => [] }));
599 const newParams = {"filter.active": true, "filter.categories": "resourceNewCategory.allotted resource.allotted resource,resourceNewCategory.allotted resource.contrail route,resourceNewCategory.application l4+.application server", "filter.components": "Resource.VF,Resource.VFC", "filter.order": "-lastUpdateDate", "filter.statuses": "inDesign", "filter.term": "Vf"}
600 component.componentInstance.changeFilterParams(filterParamsMock);
601 expect(component.componentInstance.filterParams).toEqual(filterParamsMock);
602 expect(component.componentInstance.$state.go).toHaveBeenCalledWith('.',newParams, {location: 'replace', notify: false});
603 expect(component.componentInstance.applyFilterParamsToView).toHaveBeenCalledWith(filterParamsMock);
606 it ('should call on catalog component changeFilterParams and rebuild equal true' , () => {
607 const component = TestBed.createComponent(CatalogComponent);
608 component.componentInstance.applyFilterParamsToView = jest.fn();
609 component.componentInstance.makeFilterParamsFromCheckboxes = jest.fn();
610 component.componentInstance.buildCheckboxLists = jest.fn();
611 component.componentInstance.filterParams = { active: true, categories: [], components: [], order: ["lastUpdateDate", true], statuses: [], term: ""};
612 component.componentInstance.$state.go = jest.fn().mockImplementation(() => Promise.resolve({ json: () => [] }));
613 const newParams = {"filter.active": true, "filter.categories": "resourceNewCategory.allotted resource.allotted resource,resourceNewCategory.allotted resource.contrail route,resourceNewCategory.application l4+.application server", "filter.components": "Resource.VF,Resource.VFC", "filter.order": "-lastUpdateDate", "filter.statuses": "inDesign", "filter.term": "Vf"}
614 component.componentInstance.typesChecklistModel = checkListModelMock;
615 component.componentInstance.categoriesChecklistModel = checkListModelMock;
616 component.componentInstance.statusChecklistModel = checkListModelMock;
617 component.componentInstance.changeFilterParams(filterParamsMock, true);
618 expect(component.componentInstance.filterParams).toEqual(filterParamsMock);
619 expect(component.componentInstance.$state.go).toHaveBeenCalledWith('.',newParams, {location: 'replace', notify: false});
620 //expect(component.componentInstance.makeFilterParamsFromCheckboxes).toHaveBeenCalledWith(component.componentInstance.typesChecklistModel);
621 //expect(component.componentInstance.buildCheckboxLists).toHaveBeenCalled();
622 expect(component.componentInstance.applyFilterParamsToView).toHaveBeenCalledWith(filterParamsMock);
625 it ('should call on catalog component makeFilteredCategories' , () => {
626 const component = TestBed.createComponent(CatalogComponent);
627 const categoryMock = [{"name":"Network L1-3","normalizedName":"network l1-3","uniqueId":"serviceNewCategory.network l1-3","icons":["network_l_1-3"],"subcategories":null,"version":null,"ownerId":null,"empty":false,"type":null}];
628 cacheServiceMock.get.mockImplementation(()=> categoryMock);
629 const resp = component.componentInstance.makeFilteredCategories(categoriesElements, checkboxesFilterMock.selectedComponentTypes);
630 expect(component.componentInstance.cacheService.get).toHaveBeenCalledWith("resourceCategories");
631 expect(resp).toEqual(categoryMock);
634 it ('should call on catalog component makeFilteredCategories return unique elements' , () => {
635 const component = TestBed.createComponent(CatalogComponent);
636 const categoryMock = [{"name":"Network L1-3","normalizedName":"network l1-3","uniqueId":"serviceNewCategory.network l1-3","icons":["network_l_1-3"],"subcategories":null,"version":null,"ownerId":null,"empty":false,"type":null},
637 {"name":"Network L1-3","normalizedName":"network l1-3","uniqueId":"serviceNewCategory.network l1-3","icons":["network_l_1-3"],"subcategories":null,"version":null,"ownerId":null,"empty":false,"type":null},
638 {"name":"Network Service","normalizedName":"network service","uniqueId":"serviceNewCategory.network service","icons":["network_l_1-3"],"subcategories":null,"version":null,"ownerId":null,"empty":false,"type":null}];
639 const categoryUniqueMock = [{"name":"Network L1-3","normalizedName":"network l1-3","uniqueId":"serviceNewCategory.network l1-3","icons":["network_l_1-3"],"subcategories":null,"version":null,"ownerId":null,"empty":false,"type":null},
640 {"name":"Network Service","normalizedName":"network service","uniqueId":"serviceNewCategory.network service","icons":["network_l_1-3"],"subcategories":null,"version":null,"ownerId":null,"empty":false,"type":null}];
641 cacheServiceMock.get.mockImplementation(()=> categoryMock);
642 checkboxesFilterMock.selectedComponentTypes = ["SERVICE", "Resource.VF"];
643 const resp = component.componentInstance.makeFilteredCategories(categoriesElements, checkboxesFilterMock.selectedComponentTypes);
644 expect(component.componentInstance.cacheService.get).toHaveBeenCalledWith("resourceCategories");
645 expect(resp).toEqual(categoryUniqueMock);