Browse Source

Finish dialog tests

Steven Silvester 9 years ago
parent
commit
15c7411ca3
3 changed files with 27 additions and 13 deletions
  1. 20 10
      test/src/dialog/dialog.spec.ts
  2. 1 0
      test/src/index.ts
  3. 6 3
      test/src/utils.ts

+ 20 - 10
test/src/dialog/dialog.spec.ts

@@ -22,7 +22,10 @@ describe('jupyter-ui', () => {
         expect(result).to.be(null);
         done();
       });
-      triggerKeyEvent(document.body, 'keydown', { keyCode: 27 });
+      Promise.resolve().then(() => {
+        let node = document.body.getElementsByClassName('jp-Dialog')[0];
+        triggerKeyEvent(node as HTMLElement, 'keydown', { keyCode: 27 });
+      });
     });
 
     it('should accept dialog options', (done) => {
@@ -35,12 +38,14 @@ describe('jupyter-ui', () => {
         buttons: [okButton],
         okText: 'Yep'
       }
-      showDialog().then(result => {
+      showDialog(options).then(result => {
         expect(result).to.be(null);
-        expect(node.firstChild).to.be(void 0);
         done();
       });
-      triggerKeyEvent(document.body, 'keydown', { keyCode: 27 });
+      Promise.resolve().then(() => {
+        let target = document.body.getElementsByClassName('jp-Dialog')[0];
+        triggerKeyEvent(target as HTMLElement, 'keydown', { keyCode: 27 });
+      });
     });
 
     it('should accept an html body', (done) => {
@@ -49,8 +54,8 @@ describe('jupyter-ui', () => {
       let select = document.createElement('select');
       body.appendChild(input);
       body.appendChild(select);
-      showDialog({ body }).then(result => {
-        expect(result.text).to.be('OK');
+      showDialog({ body, okText: 'CONFIRM' }).then(result => {
+        expect(result.text).to.be('CONFIRM');
         done();
       });
       acceptDialog();
@@ -65,8 +70,10 @@ describe('jupyter-ui', () => {
         expect(result.text).to.be('foo');
         done();
       });
-      let node = document.body.getElementsByClassName('bar')[0];
-      (node as HTMLElement).click();
+      Promise.resolve().then(() => {
+        let node = document.body.getElementsByClassName('bar')[0];
+        (node as HTMLElement).click();
+      });
     });
 
     it('should ignore context menu events', (done) => {
@@ -75,8 +82,11 @@ describe('jupyter-ui', () => {
         expect(result).to.be(null);
         done();
       });
-      triggerMouseEvent(body as HTMLElement, 'contextmenu');
-      triggerKeyEvent(document.body, 'keydown', { keyCode: 27 });
+      Promise.resolve().then(() => {
+        let node = document.body.getElementsByClassName('jp-Dialog')[0];
+        triggerMouseEvent(node as HTMLElement, 'contextmenu');
+        triggerKeyEvent(node as HTMLElement, 'keydown', { keyCode: 27 });
+      });
     });
 
   });

+ 1 - 0
test/src/index.ts

@@ -2,6 +2,7 @@
 // Distributed under the terms of the Modified BSD License.
 'use strict';
 
+import './dialog/dialog.spec';
 import './filehandler/creator.spec';
 import './filehandler/default.spec';
 import './filehandler/filehandler.spec';

+ 6 - 3
test/src/utils.ts

@@ -2,6 +2,7 @@
 // Distributed under the terms of the Modified BSD License.
 'use strict';
 
+
 export
 function triggerMouseEvent(node: HTMLElement, eventType: string, options: any = {}) {
   let event = document.createEvent('MouseEvent');
@@ -28,7 +29,9 @@ function triggerKeyEvent(node: HTMLElement, eventType: string, options: any = {}
 
 
 export
-function acceptDialog(host: HTMLElement = document.body): void {
-  let node = host.getElementsByClassName('jp-Dialog-okButton')[0];
-  (node as HTMLElement).click();
+function acceptDialog(host: HTMLElement = document.body): Promise<void> {
+  return Promise.resolve().then(() => {
+    let node = host.getElementsByClassName('jp-Dialog-okButton')[0];
+    (node as HTMLElement).click();
+  });
 }