From: Stephan Müller Date: Fri, 5 Jul 2019 09:54:40 +0000 (+0200) Subject: mgr/dashboard: Fix the table mouseenter event handling test X-Git-Tag: v15.1.0~2198^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=efc79990b25cd6fe4be1ab640305aaa6c829740d;p=ceph.git mgr/dashboard: Fix the table mouseenter event handling test This test only failed if all suites were run, for some reason the window object got replaced with a mock window. The workaround is not to use the window object, but mock the called function in order to call the values as expected by window. Fixes: https://tracker.ceph.com/issues/40580 Signed-off-by: Stephan Müller --- diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.spec.ts index aa86e5de32d6..1a11c43269f1 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.spec.ts @@ -80,10 +80,18 @@ describe('TableComponent', () => { }); it('should prevent propagation of mouseenter event', (done) => { - fixture.detectChanges(); + let wasCalled = false; const mouseEvent = new MouseEvent('mouseenter'); - mouseEvent.stopPropagation = () => done(); - fixture.debugElement.nativeElement.dispatchEvent(mouseEvent); + mouseEvent.stopPropagation = () => { + wasCalled = true; + }; + spyOn(window, 'addEventListener').and.callFake((eventName, fn) => { + fn(mouseEvent); + expect(eventName).toBe('mouseenter'); + expect(wasCalled).toBe(true); + done(); + }); + component.ngOnInit(); }); describe('test search', () => {