// import { ComponentFixture, TestBed } from '@angular/core/testing'; // import { Component, Input } from '@angular/core'; // import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // // import { AccordionModule } from 'ngx-bootstrap/accordion'; // import { DatatableSectionComponent } from './datatable.component'; // import { Dataset } from '../../../metamodel/model'; // import { ATTRIBUTE_LIST, DATASET_LIST } from '../../../../settings/test-data'; // // describe('[Search][Result] Component: DatatableComponent', () => { // @Component({ selector: 'app-img', template: '' }) // class ImgStubComponent { // @Input() src: string; // } // // @Component({ selector: 'app-thumbnail', template: '' }) // class ThumbnailStubComponent { // @Input() src: string; // @Input() attributeName: string; // } // // @Component({ selector: 'app-link', template: '' }) // class LinkStubComponent { // @Input() href: string; // } // // @Component({ selector: 'app-btn', template: '' }) // class BtnStubComponent { // @Input() href: string; // } // // @Component({ selector: 'app-detail', template: '' }) // class DetailStubComponent { // @Input() style: string; // @Input() datasetName: string; // @Input() data: string | number; // } // // @Component({ selector: 'app-download', template: '' }) // class DownloadStubComponent { // @Input() href: string; // } // // @Component({ selector: 'app-json-renderer', template: '' }) // class JsonStubComponent { // @Input() attributeName: string; // @Input() json: string; // } // // @Component({ selector: 'pagination', template: '' }) // class PaginationStubComponent { // @Input() totalItems: number; // @Input() boundaryLinks: boolean; // @Input() rotate: boolean; // @Input() maxSize: number; // } // // let component: DatatableSectionComponent; // let fixture: ComponentFixture<DatatableSectionComponent>; // // beforeEach(() => { // TestBed.configureTestingModule({ // declarations: [ // DatatableSectionComponent, // ImgStubComponent, // ThumbnailStubComponent, // LinkStubComponent, // BtnStubComponent, // DetailStubComponent, // DownloadStubComponent, // JsonStubComponent, // PaginationStubComponent // ], // imports: [AccordionModule.forRoot(), BrowserAnimationsModule] // }); // fixture = TestBed.createComponent(DatatableSectionComponent); // component = fixture.componentInstance; // }); // // it('should create the component', () => { // expect(component).toBeTruthy(); // }); // // it('#isDatatableOpened() should return if datatable has to be opened or not', () => { // component.datasetList = DATASET_LIST; // component.datasetName = 'cat_1'; // expect(component.isDatatableOpened()).toBeTruthy(); // component.datasetName = 'cat_2'; // expect(component.isDatatableOpened()).toBeFalsy(); // }); // // it('#getOutputList() should return filtered output list', () => { // component.outputList = [2] // component.datasetAttributeList = ATTRIBUTE_LIST; // expect(component.getOutputList().length).toBe(1); // }); // // it('#getDataset() should return dataset object', () => { // component.datasetList = DATASET_LIST; // component.datasetName = 'cat_1'; // const dataset: Dataset = component.getDataset(); // expect(dataset.name).toBe('cat_1'); // expect(dataset.label).toBe('Cat 1'); // }); // // it('#getAttributeId(attributeName) should return id of attributeName', () => { // component.datasetAttributeList = ATTRIBUTE_LIST; // expect(component.getAttributeId('name_one')).toBe(1); // }); // // it('#toggleSelection(datum) should return add datum to selectedData', () => { // const datum = { label_one: 123456 }; // component.datasetAttributeList = ATTRIBUTE_LIST; // component.selectedData = []; // component.addSelectedData.subscribe((event: any) => expect(event).toBe(123456)); // component.toggleSelection(datum); // }); // // it('#toggleSelection(datum) should return remove datum to selectedData', () => { // const datum = { label_one: 123456 }; // component.selectedData = [123456]; // component.datasetAttributeList = ATTRIBUTE_LIST; // component.deleteSelectedData.subscribe((event: any) => expect(event).toBe(123456)); // component.toggleSelection(datum); // }); // // it('#isSelected(datum) should return true datum is selected', () => { // const datum = { label_one: 123456 }; // component.datasetAttributeList = ATTRIBUTE_LIST; // component.selectedData = [123456]; // expect(component.isSelected(datum)).toBeTruthy(); // }); // // it('#isSelected(datum) should return false datum is not selected', () => { // const datum = { label_one: 123456 }; // component.datasetAttributeList = ATTRIBUTE_LIST; // component.selectedData = []; // expect(component.isSelected(datum)).toBeFalsy(); // }); // // it('#noSelectedData() should return true if no selectedData', () => { // component.selectedData = []; // expect(component.noSelectedData()).toBeTruthy(); // }); // // it('#noSelectedData() should return false if there are selectedData', () => { // component.selectedData = [123456]; // expect(component.noSelectedData()).toBeFalsy(); // }); // // it('#emitProcess() should raise executeProcess event and transmit process type', () => { // component.executeProcess.subscribe((event: string) => expect(event).toBe('test')); // component.emitProcess('test'); // }); // // it('#changePage() should change page value and raise getSearchData event', () => { // component.sortedCol = 1; // component.sortedOrder = 'a'; // component.getSearchData.subscribe((event: [number, number, number, string]) => expect(event).toEqual([2, 10, 1, 'a'])); // component.changePage(2); // }); // // it('#changeNbItems() should change nbItems value and raise getSearchData event', () => { // component.sortedCol = 1; // component.sortedOrder = 'a'; // component.getSearchData.subscribe((event: [number, number, number, string]) => expect(event).toEqual([1, 20, 1, 'a'])); // component.changeNbItems(20); // }); // // it('#ngOnInit() should init sortedCol and sortedOrder values', () => { // component.datasetAttributeList = ATTRIBUTE_LIST; // component.ngOnInit(); // expect(component.sortedCol).toEqual(1); // expect(component.sortedOrder).toBe('a'); // }); // // it('#sort() should raise getSearchData event with correct parameters', () => { // component.sortedOrder = 'a'; // let subscribtion = component.getSearchData.subscribe((event: [number, number, number, string]) => expect(event).toEqual([1, 10, 1, 'a'])); // component.sort(1); // subscribtion.unsubscribe(); // component.sortedCol = 1; // component.sortedOrder = 'a'; // subscribtion = component.getSearchData.subscribe((event: [number, number, number, string]) => expect(event).toEqual([1, 10, 1, 'd'])); // component.sort(1); // subscribtion.unsubscribe(); // component.sortedCol = 1; // component.sortedOrder = 'd'; // subscribtion = component.getSearchData.subscribe((event: [number, number, number, string]) => expect(event).toEqual([1, 10, 1, 'a'])); // component.sort(1); // }); // }); //