mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 12:29:55 +08:00
fix(navigation): move onWillDismiss and onDidDismiss, add unit tests
This commit is contained in:

committed by
Brandy Carney

parent
963e83514f
commit
e26c425766
@ -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();
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user