]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Fix the table mouseenter event handling test 29354/head
authorStephan Müller <smueller@suse.com>
Fri, 5 Jul 2019 09:54:40 +0000 (11:54 +0200)
committerStephan Müller <smueller@suse.com>
Tue, 30 Jul 2019 16:32:07 +0000 (18:32 +0200)
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 <smueller@suse.com>
(cherry picked from commit efc79990b25cd6fe4be1ab640305aaa6c829740d)

Conflicts (trivial + linting issue):
src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.spec.ts

src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.spec.ts

index 1d4ddeaef23cb6c8e7a7a7edaaa47a751acfe5a6..780192b0b9e9c0cca6a8638f95b484300f3b2e48 100644 (file)
@@ -88,10 +88,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();
     });
 
     it('should force an identifier', () => {