+import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import { RouterTestingModule } from '@angular/router/testing';
import { TabsetComponent, TabsModule } from 'ngx-bootstrap/tabs';
import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
-import { AppModule } from '../../../app.module';
-import { CdTableSelection } from '../../../shared/models/cd-table-selection';
import { Permissions } from '../../../shared/models/permissions';
+import { SharedModule } from '../../../shared/shared.module';
import { RbdConfigurationListComponent } from '../../block/rbd-configuration-list/rbd-configuration-list.component';
import { PoolDetailsComponent } from './pool-details.component';
let fixture: ComponentFixture<PoolDetailsComponent>;
configureTestBed({
- imports: [TabsModule.forRoot(), AppModule],
+ imports: [
+ BrowserAnimationsModule,
+ TabsModule.forRoot(),
+ SharedModule,
+ HttpClientTestingModule,
+ RouterTestingModule
+ ],
declarations: [PoolDetailsComponent, RbdConfigurationListComponent],
providers: [i18nProviders]
});
beforeEach(() => {
fixture = TestBed.createComponent(PoolDetailsComponent);
poolDetailsComponent = fixture.componentInstance;
- poolDetailsComponent.selection = new CdTableSelection();
+ poolDetailsComponent.selection = undefined;
poolDetailsComponent.permissions = new Permissions({
grafana: ['read']
});
describe('Pool details tabset', () => {
beforeEach(() => {
- poolDetailsComponent.selection.selected = [
- {
- tiers: [0],
- pool: 0
- }
- ];
- poolDetailsComponent.selection.update();
+ poolDetailsComponent.selection = {
+ tiers: [0],
+ pool: 0
+ };
});
it('should recognize a tabset child', () => {
});
it('should not show "Cache Tiers Details" tab if selected pool has no "tiers"', () => {
- poolDetailsComponent.selection.selected = [
- {
- tiers: []
- }
- ];
- poolDetailsComponent.selection.update();
+ poolDetailsComponent.selection = {
+ tiers: []
+ };
fixture.detectChanges();
const tabs = poolDetailsComponent.tabsetChild.tabs;
expect(tabs.length).toEqual(2);
expect(tabs[0].active).toBeTruthy();
});
- it('current active status of tabs should not change when selection is same with previour selection', () => {
+ it('current active status of tabs should not change when selection is the same as previous selection', () => {
fixture.detectChanges();
const tabs = poolDetailsComponent.tabsetChild.tabs;
expect(tabs[0].active).toBeTruthy();
fixture.detectChanges();
expect(tabs[1].active).toBeTruthy();
});
+
+ it('returns pool details correctly', () => {
+ const pool = { prop1: 1, cdIsBinary: true, prop2: 2, cdExecuting: true, prop3: 3 };
+ const expectedPool = { prop1: 1, prop2: 2, prop3: 3 };
+
+ expect(poolDetailsComponent.filterNonPoolData(pool)).toEqual(expectedPool);
+ });
+
+ it('pool data filtering is called', () => {
+ const filterNonPoolDataSpy = spyOn(
+ poolDetailsComponent,
+ 'filterNonPoolData'
+ ).and.callThrough();
+
+ fixture.detectChanges();
+
+ expect(filterNonPoolDataSpy).toHaveBeenCalled();
+ });
});
});