فهرست منبع

wip update tests

Steven Silvester 6 سال پیش
والد
کامیت
044c37dd76

+ 2 - 0
tests/convert-to-chai.js

@@ -31,5 +31,7 @@ glob.sync(path.join(target, 'src', '*.ts*')).forEach(function(filePath) {
   src = src.split('to.be(').join('to.equal(');
   src = src.split('to.eql(').join('to.deep.equal(');
   src = src.split('to.be.a(').join('to.be.an.instanceof(');
+  src = src.split('to.be.an(').join('to.be.an.instanceof(');
+  src = src.split(').to.be.empty()').join('.length).to.be(0)');
   fs.writeFileSync(filePath, src, 'utf8');
 });

+ 62 - 93
tests/test-application/src/layoutrestorer.spec.ts

@@ -21,7 +21,7 @@ describe('apputils', () => {
   describe('LayoutRestorer', () => {
     describe('#constructor()', () => {
       it('should construct a new layout restorer', () => {
-        let restorer = new LayoutRestorer({
+        const restorer = new LayoutRestorer({
           first: Promise.resolve<void>(void 0),
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
@@ -32,7 +32,7 @@ describe('apputils', () => {
 
     describe('#restored', () => {
       it('should be a promise available right away', () => {
-        let restorer = new LayoutRestorer({
+        const restorer = new LayoutRestorer({
           first: Promise.resolve<void>(void 0),
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
@@ -41,8 +41,8 @@ describe('apputils', () => {
       });
 
       it('should resolve when restorer is done', done => {
-        let ready = new PromiseDelegate<void>();
-        let restorer = new LayoutRestorer({
+        const ready = new PromiseDelegate<void>();
+        const restorer = new LayoutRestorer({
           first: ready.promise,
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
@@ -57,60 +57,51 @@ describe('apputils', () => {
     });
 
     describe('#add()', () => {
-      it('should add a widget to be tracked by the restorer', done => {
-        let ready = new PromiseDelegate<void>();
-        let restorer = new LayoutRestorer({
+      it('should add a widget to be tracked by the restorer', async () => {
+        const ready = new PromiseDelegate<void>();
+        const restorer = new LayoutRestorer({
           first: ready.promise,
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
         });
-        let currentWidget = new Widget();
-        let mode: DockPanel.Mode = 'single-document';
-        let dehydrated: ApplicationShell.ILayout = {
+        const currentWidget = new Widget();
+        const mode: DockPanel.Mode = 'single-document';
+        const dehydrated: ApplicationShell.ILayout = {
           mainArea: { currentWidget, dock: null, mode },
           leftArea: { collapsed: true, currentWidget: null, widgets: null },
           rightArea: { collapsed: true, currentWidget: null, widgets: null }
         };
         restorer.add(currentWidget, 'test-one');
         ready.resolve(void 0);
-        restorer.restored
-          .then(() => restorer.save(dehydrated))
-          .then(() => restorer.fetch())
-          .then(layout => {
-            expect(layout.mainArea.currentWidget).to.equal(currentWidget);
-            expect(layout.mainArea.mode).to.equal(mode);
-            done();
-          })
-          .catch(done);
+        await restorer.restored;
+        await restorer.save(dehydrated);
+        const layout = await restorer.fetch();
+        expect(layout.mainArea.currentWidget).to.equal(currentWidget);
+        expect(layout.mainArea.mode).to.equal(mode);
       });
     });
 
     describe('#fetch()', () => {
-      it('should always return a value', done => {
-        let restorer = new LayoutRestorer({
+      it('should always return a value', async () => {
+        const restorer = new LayoutRestorer({
           first: Promise.resolve(void 0),
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
         });
-        restorer
-          .fetch()
-          .then(layout => {
-            expect(layout).to.be.not.be(null);
-            done();
-          })
-          .catch(done);
+        const layout = await restorer.fetch();
+        expect(layout).to.be.not.be(null);
       });
 
-      it('should fetch saved data', done => {
-        let ready = new PromiseDelegate<void>();
-        let restorer = new LayoutRestorer({
+      it('should fetch saved data', async () => {
+        const ready = new PromiseDelegate<void>();
+        const restorer = new LayoutRestorer({
           first: ready.promise,
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
         });
-        let currentWidget = new Widget();
+        const currentWidget = new Widget();
         // The `fresh` attribute is only here to check against the return value.
-        let dehydrated: ApplicationShell.ILayout = {
+        const dehydrated: ApplicationShell.ILayout = {
           fresh: false,
           mainArea: { currentWidget: null, dock: null, mode: null },
           leftArea: {
@@ -122,93 +113,75 @@ describe('apputils', () => {
         };
         restorer.add(currentWidget, 'test-one');
         ready.resolve(void 0);
-        restorer.restored
-          .then(() => restorer.save(dehydrated))
-          .then(() => restorer.fetch())
-          .then(layout => {
-            expect(layout).to.deep.equal(dehydrated);
-            done();
-          })
-          .catch(done);
+        await restorer.restored;
+        await restorer.save(dehydrated);
+        const layout = await restorer.fetch();
+        expect(layout).to.deep.equal(dehydrated);
       });
     });
 
     describe('#restore()', () => {
-      it('should restore the widgets in a tracker', done => {
-        let tracker = new InstanceTracker<Widget>({ namespace: 'foo-widget' });
-        let registry = new CommandRegistry();
-        let state = new StateDB({ namespace: NAMESPACE });
-        let ready = new PromiseDelegate<void>();
-        let restorer = new LayoutRestorer({
+      it('should restore the widgets in a tracker', async () => {
+        const tracker = new InstanceTracker<Widget>({
+          namespace: 'foo-widget'
+        });
+        const registry = new CommandRegistry();
+        const state = new StateDB({ namespace: NAMESPACE });
+        const ready = new PromiseDelegate<void>();
+        const restorer = new LayoutRestorer({
           first: ready.promise,
           registry,
           state
         });
         let called = false;
-        let key = `${tracker.namespace}:${tracker.namespace}`;
+        const key = `${tracker.namespace}:${tracker.namespace}`;
 
         registry.addCommand(tracker.namespace, {
           execute: () => {
             called = true;
           }
         });
-        state
-          .save(key, { data: null })
-          .then(() => {
-            ready.resolve(undefined);
-            return restorer.restore(tracker, {
-              args: () => null,
-              name: () => tracker.namespace,
-              command: tracker.namespace
-            });
-          })
-          .catch(done);
-        restorer.restored
-          .then(() => {
-            expect(called).to.equal(true);
-          })
-          .then(() => state.remove(key))
-          .then(() => {
-            done();
-          })
-          .catch(done);
+        await state.save(key, { data: null });
+        ready.resolve(undefined);
+        await restorer.restore(tracker, {
+          args: () => null,
+          name: () => tracker.namespace,
+          command: tracker.namespace
+        });
+        await restorer.restored;
+        expect(called).to.equal(true);
       });
     });
 
     describe('#save()', () => {
-      it('should not run before `first` promise', done => {
-        let restorer = new LayoutRestorer({
+      it('should not run before `first` promise', async () => {
+        let called = false;
+        const restorer = new LayoutRestorer({
           first: new Promise(() => {
-            /* no op */
+            called = true;
           }),
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
         });
-        let dehydrated: ApplicationShell.ILayout = {
+        const dehydrated: ApplicationShell.ILayout = {
           mainArea: { currentWidget: null, dock: null, mode: null },
           leftArea: { currentWidget: null, collapsed: true, widgets: null },
           rightArea: { collapsed: true, currentWidget: null, widgets: null }
         };
-        restorer
-          .save(dehydrated)
-          .then(() => {
-            done('save() ran before `first` promise resolved.');
-          })
-          .catch(() => {
-            done();
-          });
+        await restorer.save(dehydrated);
+        expect(called).to.equal(true);
       });
 
-      it('should save data', done => {
-        let ready = new PromiseDelegate<void>();
-        let restorer = new LayoutRestorer({
+      it('should save data', async () => {
+        const ready = new PromiseDelegate<void>();
+        const restorer = new LayoutRestorer({
           first: ready.promise,
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
         });
-        let currentWidget = new Widget();
+        const currentWidget = new Widget();
         // The `fresh` attribute is only here to check against the return value.
-        let dehydrated: ApplicationShell.ILayout = {
+        const dehydrated: ApplicationShell.ILayout = {
           fresh: false,
           mainArea: { currentWidget: null, dock: null, mode: null },
           leftArea: {
@@ -220,14 +193,10 @@ describe('apputils', () => {
         };
         restorer.add(currentWidget, 'test-one');
         ready.resolve(void 0);
-        restorer.restored
-          .then(() => restorer.save(dehydrated))
-          .then(() => restorer.fetch())
-          .then(layout => {
-            expect(layout).to.deep.equal(dehydrated);
-            done();
-          })
-          .catch(done);
+        await restorer.restored;
+        await restorer.save(dehydrated);
+        const layout = await restorer.fetch();
+        expect(layout).to.deep.equal(dehydrated);
       });
     });
   });

+ 1 - 1
tests/test-application/src/router.spec.ts

@@ -148,7 +148,7 @@ describe('apputils', () => {
           }
         });
         router.register({ command: 'a', pattern: /#a/, rank: 10 });
-        expect(recorded).to.be.empty();
+        expect(recorded.length).to.be(0);
 
         // Change the hash because changing location is a security error.
         window.location.hash = 'a';

+ 1 - 1
tests/test-application/src/shell.spec.ts

@@ -33,7 +33,7 @@ describe('ApplicationShell', () => {
 
   describe('#constructor()', () => {
     it('should create an ApplicationShell instance', () => {
-      expect(shell).to.be.an(ApplicationShell);
+      expect(shell).to.be.an.instanceof(ApplicationShell);
     });
   });