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', () => {
|
describe('ViewController', () => {
|
||||||
@ -87,6 +87,38 @@ describe('ViewController', () => {
|
|||||||
}, 10000);
|
}, 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(() => {
|
afterEach(() => {
|
||||||
if (subscription) {
|
if (subscription) {
|
||||||
subscription.unsubscribe();
|
subscription.unsubscribe();
|
||||||
|
@ -179,7 +179,7 @@ export class ViewController {
|
|||||||
this._onWillDismiss && this._onWillDismiss(data, role);
|
this._onWillDismiss && this._onWillDismiss(data, role);
|
||||||
return this._nav.remove(this._nav.indexOf(this), 1, options).then(() => {
|
return this._nav.remove(this._nav.indexOf(this), 1, options).then(() => {
|
||||||
this._onDidDismiss && this._onDidDismiss(data, role);
|
this._onDidDismiss && this._onDidDismiss(data, role);
|
||||||
this._onWillDismiss = null;
|
this._onDidDismiss = null;
|
||||||
return data;
|
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