import { TestBed, ComponentFixture } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { BlockUI } from './blockui'; import { NoopAnimationsModule } from '@angular/platform-browser/animations'; import { Component } from '@angular/core'; import { Panel } from "mirra-ui/panel"; @Component({ template: ` ` }) class TestBlockUIComponent { } describe('BlockUI', () => { let blockui: BlockUI; let blockui2: BlockUI; let fixture: ComponentFixture; beforeEach(() => { TestBed.configureTestingModule({ imports: [ NoopAnimationsModule ], declarations: [ BlockUI, TestBlockUIComponent, Panel ] }); fixture = TestBed.createComponent(TestBlockUIComponent); blockui = fixture.debugElement.children[0].componentInstance; blockui2 = fixture.debugElement.children[1].componentInstance; }); it('should display by default', () => { blockui.blocked = false; fixture.detectChanges(); const blockEl = fixture.debugElement.query(By.css('div')); expect(blockEl.nativeElement).toBeTruthy(); }); it('should block body', () => { blockui.blocked = false; fixture.detectChanges(); const blockSpy = spyOn(blockui,'block').and.callThrough(); blockui.blocked = true; fixture.detectChanges(); expect(blockSpy).toHaveBeenCalled(); }); it('should unblock body', () => { blockui.blocked = false; fixture.detectChanges(); const unBlockSpy = spyOn(blockui,'unblock').and.callThrough(); blockui.blocked = true; fixture.detectChanges(); blockui.blocked = false; fixture.detectChanges(); expect(unBlockSpy).toHaveBeenCalled(); }); it('should block element with target', () => { blockui2.blocked = false; fixture.detectChanges(); const blockSpy = spyOn(blockui2,'block').and.callThrough(); blockui2.blocked = true; fixture.detectChanges(); expect(blockSpy).toHaveBeenCalled(); expect(blockui2.target.style.position).toEqual("relative"); }); });