diff --git a/src/components/app/test/app.spec.ts b/src/components/app/test/app.spec.ts index 051e76e6b6..fb7b7f206b 100644 --- a/src/components/app/test/app.spec.ts +++ b/src/components/app/test/app.spec.ts @@ -1,7 +1,8 @@ import { App } from '../app'; import { AppPortal } from '../app-root'; +import { ClickBlock } from '../../../util/click-block'; import { Config } from '../../../config/config'; -import { mockApp, mockConfig, mockNavController, mockPlatform, mockTab, mockTabs, mockView, mockViews } from '../../../util/mock-providers'; +import { mockApp, mockConfig, mockElementRef, mockNavController, mockPlatform, mockRenderer, mockTab, mockTabs, mockView, mockViews } from '../../../util/mock-providers'; import { OverlayPortal } from '../../nav/overlay-portal'; import { Platform } from '../../../platform/platform'; @@ -354,29 +355,22 @@ describe('App', () => { }); describe('setEnabled', () => { + it('should disable click block when app is enabled', (done) => { - // arrange - let mockClickBlock: any = { - activate: () => {} - }; + app._clickBlock = new ClickBlock(app, mockConfig(), mockElementRef(), mockRenderer()); - spyOn(mockClickBlock, 'activate'); + spyOn(app._clickBlock, '_activate'); - app._clickBlock = mockClickBlock; - - // act app.setEnabled(true); - // assert - expect(mockClickBlock.activate).not.toHaveBeenCalled(); + expect(app._clickBlock._activate).not.toHaveBeenCalledWith(); setTimeout(() => { - expect(mockClickBlock.activate).toHaveBeenCalledWith(false, 0); + expect(app._clickBlock._activate).toHaveBeenCalledWith(false); done(); }, 120); }, 1000); - it('should enable click block when false is passed with duration', () => { // arrange let mockClickBlock: any = { diff --git a/src/util/click-block.ts b/src/util/click-block.ts index 17d9718e0e..4af4b8e189 100644 --- a/src/util/click-block.ts +++ b/src/util/click-block.ts @@ -12,7 +12,7 @@ import { Config } from '../config/config'; selector: '.click-block' }) export class ClickBlock { - private _tmrId: number; + private _tmr: number; private _showing: boolean = false; isEnabled: boolean; @@ -23,30 +23,32 @@ export class ClickBlock { private renderer: Renderer ) { app._clickBlock = this; - let enabled = this.isEnabled = config.getBoolean('clickBlock', true); + + const enabled = this.isEnabled = config.getBoolean('clickBlock', true); if (enabled) { - this.setElementClass('click-block-enabled', true); + this._setElementClass('click-block-enabled', true); } } activate(shouldShow: boolean, expire: number = 100) { if (this.isEnabled) { - clearNativeTimeout(this._tmrId); + clearNativeTimeout(this._tmr); if (shouldShow) { this._activate(true); } - this._tmrId = nativeTimeout(this._activate.bind(this, false), expire); + this._tmr = nativeTimeout(this._activate.bind(this, false), expire); } } + /** @internal */ _activate(shouldShow: boolean) { if (this._showing !== shouldShow) { - this.setElementClass('click-block-active', shouldShow); + this._setElementClass('click-block-active', shouldShow); this._showing = shouldShow; } } - setElementClass(className: string, add: boolean) { + private _setElementClass(className: string, add: boolean) { this.renderer.setElementClass(this.elementRef.nativeElement, className, add); }