import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { RouterTestingModule } from '@angular/router/testing'; import { ViewOnlyComponent } from './view-only.modal'; import { AgGridModule } from 'ag-grid-angular'; // import { ANONYMOUS_RULES, USER } from 'mockup'; import { BsModalRef, BsModalService, ComponentLoaderFactory, PositioningService, TabsModule } from 'ngx-bootstrap'; import { Apollo } from 'apollo-angular'; import { ToolbarPredictiveService } from 'libs/pages/predictive-ordering/dpo-query/predictive-ordering.toolbar.service'; import { LicenseManager } from 'ag-grid-enterprise'; import { NgxEchartsModule } from 'ngx-echarts'; import * as echarts from 'echarts'; import {ANONYMOUS_RULES, USER} from '../../../../mockup'; import {TEST_AGGRID_LICENSE_KEY} from '../../../../utils/global.const'; LicenseManager.setLicenseKey(TEST_AGGRID_LICENSE_KEY); describe('ViewOnlyComponent', () => { let component: ViewOnlyComponent; let fixture: ComponentFixture; let bsModalRef: BsModalRef; let toolbarPredictiveService: ToolbarPredictiveService; beforeAll(() => { localStorage.setItem('anonymous-rule', JSON.stringify(ANONYMOUS_RULES)); window.location.hostname = 'www.aggrid.com'; window.location.search = 'forceWatermark'; }); beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ViewOnlyComponent], imports: [ AgGridModule, TabsModule.forRoot(), ComponentsModule, NgxEchartsModule.forRoot({ echarts, }), RouterTestingModule.withRoutes([]), ], providers: [BsModalRef, BsModalService, ComponentLoaderFactory, PositioningService, Apollo], }).compileComponents(); })); beforeEach(() => { fixture = TestBed.createComponent(ViewOnlyComponent); component = fixture.componentInstance; bsModalRef = TestBed.inject(BsModalRef); toolbarPredictiveService = TestBed.inject(ToolbarPredictiveService); component.data = { rowIndex: 1, title: 'Perpetual Inventory', chartData: { chart: { 'chart-type': 'bar and line', measures: [], title: 'inventory-chart-title', }, 'grid-tab-title': 'inventory-grid-title', 'measure-header': 'data-measure', measure: [], timeline: 'days-inventory', title: 'test', }, i18N: USER.data.userConfig.applications[1].i18n, }; toolbarPredictiveService.getPerpetualData = jest.fn(); // fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); }); it('should load data', () => { component.data = { rowIndex: 1, title: 'Perpetual Inventory', }; expect(component.data).toBeTruthy(); }); it('should hide modal onCancel', () => { bsModalRef.hide = jest.fn(); component.onCancel(); expect(bsModalRef.hide).toHaveBeenCalled(); }); });