From 6f900cc45d7dd7f97430812b86b5c1d1693c8ae3 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Wed, 29 Aug 2018 17:01:32 +0300 Subject: merge from ecomp a88f0072 - Modern UI Issue-ID: VID-378 Change-Id: Ibcb23dd27f550cf32ce2fe0239f0f496ae014ff6 Signed-off-by: Ittay Stern --- .../clickOutside/clickOutside.directive.spec.ts | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts (limited to 'vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts') diff --git a/vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts b/vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts new file mode 100644 index 000000000..8edfb8733 --- /dev/null +++ b/vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts @@ -0,0 +1,52 @@ +import {ComponentFixture, TestBed} from '@angular/core/testing'; +import {Component, DebugElement} from "@angular/core"; +import {By} from "@angular/platform-browser"; +import {ClickOutsideDirective} from "./clickOutside.directive"; + +@Component({ + template: + `
+
+
` +}) +class TestHoverFocusComponent { +} + + +describe('Click outside Directive', () => { + let component: TestHoverFocusComponent; + let fixture: ComponentFixture; + let directiveInstance : ClickOutsideDirective; + let outsideDivShouldNotTrigger: DebugElement; + let outsideDivShouldTrigger: DebugElement; + let innerDiv: DebugElement; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [TestHoverFocusComponent, ClickOutsideDirective] + }); + fixture = TestBed.createComponent(TestHoverFocusComponent); + component = fixture.componentInstance; + outsideDivShouldNotTrigger = fixture.debugElement.query(By.css('.outsideDivShouldNotTrigger')); + outsideDivShouldTrigger = fixture.debugElement.query(By.css('.outsideDivShouldTrigger')); + innerDiv = fixture.debugElement.query(By.css('#innerDiv')); + directiveInstance = innerDiv.injector.get(ClickOutsideDirective); + }); + + test('directive should be defined', () => { + expect(directiveInstance).toBeDefined(); + }); + + test(`should have list of class's`, () => { + fixture.detectChanges(); + expect(directiveInstance.classElements).toEqual(['outsideDivShouldNotTrigger']); + }); + + test('should not trigger output on click outside', () => { + fixture.detectChanges(); + spyOn(directiveInstance.clickOutsideTrigger, 'next'); + outsideDivShouldNotTrigger.nativeElement.click(); + expect(directiveInstance.clickOutsideTrigger.next).toHaveBeenCalledTimes(0); + }); + +}); -- cgit 1.2.3-korg