Newer
Older
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { Component, Input, Output, EventEmitter, ViewChild } from '@angular/core';
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import { TabsModule } from 'ngx-bootstrap';
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 })
public testedComponent: DatasetTabsComponent;
private projectList: Project[] = PROJECT_LIST;
private datasetList: Dataset[] = DATASET_LIST;
private datasetFamilyList: Family[] = DATASET_FAMILY_LIST;
private 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: [TabsModule.forRoot()]
});
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('#getDatasetFamilyListSortedByDisplay() should sort dataset family by display', () => {
const sortedDatasetFamily = testedComponent.getDatasetFamilyListSortedByDisplay();
expect(sortedDatasetFamily.length).toBe(3);
expect(sortedDatasetFamily[0].id).toBe(1);
expect(sortedDatasetFamily[2].id).toBe(3);
});
it('#getProject(dataset) should return the dataset project', () => {
const project = testedComponent.getProject(DATASET);
expect(project.name).toBe('project_1');
});
});