diff --git a/src/navigation/test/view-controller.spec.ts b/src/navigation/test/view-controller.spec.ts index fcc782cc7f..f11d6f6b74 100644 --- a/src/navigation/test/view-controller.spec.ts +++ b/src/navigation/test/view-controller.spec.ts @@ -1,4 +1,4 @@ -import { mockView } from '../../util/mock-providers'; +import { mockNavController, mockView, mockViews } from '../../util/mock-providers'; describe('ViewController', () => { @@ -87,6 +87,38 @@ describe('ViewController', () => { }, 10000); }); + describe('willDismiss', () => { + it('should have data in the willDismiss', (done) => { + // arrange + let viewController = mockView(); + let navControllerBase = mockNavController(); + mockViews(navControllerBase, [viewController]); + + viewController.onWillDismiss((data: any) => { + expect(data).toEqual('willDismiss data'); + done(); + }); + + viewController.dismiss('willDismiss data'); + }, 10000); + }); + + describe('didDismiss', () => { + it('should have data in the didDismiss', (done) => { + // arrange + let viewController = mockView(); + let navControllerBase = mockNavController(); + mockViews(navControllerBase, [viewController]); + + viewController.onDidDismiss((data: any) => { + expect(data).toEqual('didDismiss data'); + done(); + }); + + viewController.dismiss('didDismiss data'); + }, 10000); + }); + afterEach(() => { if (subscription) { subscription.unsubscribe(); diff --git a/src/navigation/view-controller.ts b/src/navigation/view-controller.ts index 447dc27b7a..9bf1dc9e47 100644 --- a/src/navigation/view-controller.ts +++ b/src/navigation/view-controller.ts @@ -179,7 +179,7 @@ export class ViewController { this._onWillDismiss && this._onWillDismiss(data, role); return this._nav.remove(this._nav.indexOf(this), 1, options).then(() => { this._onDidDismiss && this._onDidDismiss(data, role); - this._onWillDismiss = null; + this._onDidDismiss = null; return data; }); } @@ -515,7 +515,7 @@ export class ViewController { } } - this._nav = this._cmp = this.instance = this._cntDir = this._cntRef = this._hdrDir = this._ftrDir = this._nb = this._onDidDismiss = null; + this._nav = this._cmp = this.instance = this._cntDir = this._cntRef = this._hdrDir = this._ftrDir = this._nb = this._onWillDismiss = null; } /**