Newer
Older
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { DatasetTabsComponent } from './dataset-tabs.component';
import { Project, Dataset, Family } from '../../../metamodel/model';
import { PROJECT_LIST, DATASET_LIST, DATASET_FAMILY_LIST, DATASET } from '../../../../settings/test-data';
describe('[Search][Dataset] Component: DatasetTabsComponent', () => {
@Component({
selector: `app-host`,
template: `
<app-dataset-tabs
[projectList]="projectList"
[datasetList]="datasetList"
[datasetFamilyList]="datasetFamilyList"
[datasetSelected]="datasetSelected">
</app-dataset-tabs>
`
})
class TestHostComponent {
@ViewChild(DatasetTabsComponent, { static: false })
testedComponent: DatasetTabsComponent;
projectList: Project[] = PROJECT_LIST;
datasetList: Dataset[] = DATASET_LIST;
datasetFamilyList: Family[] = DATASET_FAMILY_LIST;
datasetSelected = 'cat_1';
}
@Component({ selector: 'app-dataset-card', template: '' })
class DatasetCardStubComponent {
@Input() project: Project;
@Input() dataset: Dataset;
@Input() datasetSelected: string;
@Output() select: EventEmitter<string> = new EventEmitter();
}
let testHostComponent: TestHostComponent;
let testHostFixture: ComponentFixture<TestHostComponent>;
let testedComponent: DatasetTabsComponent;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [
DatasetTabsComponent,
TestHostComponent,
DatasetCardStubComponent
],
imports: [AccordionModule.forRoot(), BrowserAnimationsModule]
});
testHostFixture = TestBed.createComponent(TestHostComponent);
testHostComponent = testHostFixture.componentInstance;
testHostFixture.detectChanges();
testedComponent = testHostComponent.testedComponent;
}));
it('should create the component', () => {
expect(testedComponent).toBeTruthy();
});
it('#getDatasetListByFamily(idFamily) should filter datasets by idFamily', () => {
const filteredDatasetList: Dataset[] = testedComponent.getDatasetListByFamily(1);
expect(filteredDatasetList.length).toBe(1);
expect(filteredDatasetList[0].name).toBe('cat_1');
});
it('#getProject(dataset) should return the dataset project', () => {
const project = testedComponent.getProject(DATASET);
expect(project.name).toBe('project_1');
});
it('should select dataset if only one dataset in instance', () => {
testedComponent.select.subscribe((event: string) => expect(event).toBe('cat_1'));
testHostComponent.datasetList = [DATASET]
testHostFixture.detectChanges();
});