summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts')
-rw-r--r--vid-webpack-master/src/app/shared/directives/clickOutside/clickOutside.directive.spec.ts52
1 files changed, 52 insertions, 0 deletions
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:
+ `<div id="innerDiv" [clickOutside] [classElements]="['outsideDivShouldNotTrigger']"></div>
+ <div class="outsideDivShouldTrigger"></div>
+ <div class="outsideDivShouldNotTrigger"></div>`
+})
+class TestHoverFocusComponent {
+}
+
+
+describe('Click outside Directive', () => {
+ let component: TestHoverFocusComponent;
+ let fixture: ComponentFixture<TestHoverFocusComponent>;
+ 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);
+ });
+
+});