瀏覽代碼

Fix instance restorer tests.

Afshin Darian 8 年之前
父節點
當前提交
05cd5e6d2a
共有 2 個文件被更改,包括 16 次插入19 次删除
  1. 3 6
      src/instancerestorer/instancerestorer.ts
  2. 13 13
      test/src/instancerestorer/instancerestorer.spec.ts

+ 3 - 6
src/instancerestorer/instancerestorer.ts

@@ -197,10 +197,7 @@ class InstanceRestorer implements IInstanceRestorer {
    */
   fetch(): Promise<ApplicationShell.ILayout> {
     const blank: ApplicationShell.ILayout = {
-      fresh: true,
-      mainArea: null,
-      leftArea: { collapsed: true, currentWidget: null, widgets: null },
-      rightArea: { collapsed: true, currentWidget: null, widgets: null }
+      fresh: true, mainArea: null, leftArea: null, rightArea: null
     };
     let layout = this._state.fetch(KEY);
 
@@ -555,7 +552,7 @@ namespace Private {
     let dehydrated: IMainArea = {
       dock: area && area.dock && serializeArea(area.dock.main) || null
     };
-    if (area.currentWidget) {
+    if (area && area.currentWidget) {
       let current = Private.nameProperty.get(area.currentWidget);
       if (current) {
         dehydrated.current = current;
@@ -637,7 +634,7 @@ namespace Private {
 
     return {
       currentWidget: name && names.has(name) && names.get(name) || null,
-      dock: { main: deserializeArea(dock, names) }
+      dock: dock ? { main: deserializeArea(dock, names) } : null
     };
   }
 }

+ 13 - 13
test/src/instancerestorer/instancerestorer.spec.ts

@@ -15,14 +15,14 @@ import {
   Widget
 } from '@phosphor/widgets';
 
-import {
-  IInstanceRestorer, InstanceRestorer
-} from '../../../lib/instancerestorer/instancerestorer';
-
 import {
   ApplicationShell, InstanceTracker
 } from '../../../lib/application';
 
+import {
+  InstanceRestorer
+} from '../../../lib/instancerestorer/instancerestorer';
+
 import {
   StateDB
 } from '../../../lib/statedb/statedb';
@@ -82,8 +82,8 @@ describe('instancerestorer/instancerestorer', () => {
           state: new StateDB({ namespace: NAMESPACE })
         });
         let currentWidget = new Widget();
-        let dehydrated: IInstanceRestorer.ILayout = {
-          currentWidget,
+        let dehydrated: ApplicationShell.ILayout = {
+          mainArea: { currentWidget, dock: null },
           leftArea: { collapsed: true, currentWidget: null, widgets: null },
           rightArea: { collapsed: true, currentWidget: null, widgets: null }
         };
@@ -92,7 +92,7 @@ describe('instancerestorer/instancerestorer', () => {
         restorer.restored.then(() => restorer.save(dehydrated))
           .then(() => restorer.fetch())
           .then(layout => {
-            expect(layout.currentWidget).to.be(currentWidget);
+            expect(layout.mainArea.currentWidget).to.be(currentWidget);
             done();
           }).catch(done);
       });
@@ -122,9 +122,9 @@ describe('instancerestorer/instancerestorer', () => {
         });
         let currentWidget = new Widget();
         // The `fresh` attribute is only here to check against the return value.
-        let dehydrated: IInstanceRestorer.ILayout = {
-          currentWidget: null,
+        let dehydrated: ApplicationShell.ILayout = {
           fresh: false,
+          mainArea: { currentWidget: null, dock: null },
           leftArea: {
             currentWidget,
             collapsed: true,
@@ -187,8 +187,8 @@ describe('instancerestorer/instancerestorer', () => {
           registry: new CommandRegistry(),
           state: new StateDB({ namespace: NAMESPACE })
         });
-        let dehydrated: IInstanceRestorer.ILayout = {
-          currentWidget: null,
+        let dehydrated: ApplicationShell.ILayout = {
+          mainArea: { currentWidget: null, dock: null },
           leftArea: { currentWidget: null, collapsed: true, widgets: null },
           rightArea: { collapsed: true, currentWidget: null, widgets: null }
         };
@@ -206,9 +206,9 @@ describe('instancerestorer/instancerestorer', () => {
         });
         let currentWidget = new Widget();
         // The `fresh` attribute is only here to check against the return value.
-        let dehydrated: IInstanceRestorer.ILayout = {
-          currentWidget: null,
+        let dehydrated: ApplicationShell.ILayout = {
           fresh: false,
+          mainArea: { currentWidget: null, dock: null },
           leftArea: {
             currentWidget,
             collapsed: true,