mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-15 01:03:03 +08:00
121 lines
3.4 KiB
JavaScript
121 lines
3.4 KiB
JavaScript
describe('Lifecycle', () => {
|
|
it('should fire lifecycle events when navigating to and from a page', () => {
|
|
cy.visit('/');
|
|
cy.ionPageVisible('home');
|
|
cy.get('#lifecycle').click();
|
|
|
|
testLifecycle('lifecycle', {
|
|
ionViewWillEnter: 1,
|
|
ionViewDidEnter: 1,
|
|
ionViewWillLeave: 0,
|
|
ionViewDidLeave: 0,
|
|
onIonViewWillEnter: 1,
|
|
onIonViewDidEnter: 1,
|
|
onIonViewWillLeave: 0,
|
|
onIonViewDidLeave: 0
|
|
});
|
|
|
|
cy.get('#lifecycle-navigation').click();
|
|
|
|
testLifecycle('lifecycle', {
|
|
ionViewWillEnter: 1,
|
|
ionViewDidEnter: 1,
|
|
ionViewWillLeave: 1,
|
|
ionViewDidLeave: 1,
|
|
onIonViewWillEnter: 1,
|
|
onIonViewDidEnter: 1,
|
|
onIonViewWillLeave: 1,
|
|
onIonViewDidLeave: 1
|
|
});
|
|
|
|
cy.ionBackClick('navigation');
|
|
|
|
testLifecycle('lifecycle', {
|
|
ionViewWillEnter: 2,
|
|
ionViewDidEnter: 2,
|
|
ionViewWillLeave: 1,
|
|
ionViewDidLeave: 1,
|
|
onIonViewWillEnter: 2,
|
|
onIonViewDidEnter: 2,
|
|
onIonViewWillLeave: 1,
|
|
onIonViewDidLeave: 1
|
|
});
|
|
});
|
|
|
|
it('should fire lifecycle events when landed on directly', () => {
|
|
cy.visit('/lifecycle');
|
|
|
|
testLifecycle('lifecycle', {
|
|
ionViewWillEnter: 1,
|
|
ionViewDidEnter: 1,
|
|
ionViewWillLeave: 0,
|
|
ionViewDidLeave: 0,
|
|
onIonViewWillEnter: 1,
|
|
onIonViewDidEnter: 1,
|
|
onIonViewWillLeave: 0,
|
|
onIonViewDidLeave: 0
|
|
});
|
|
});
|
|
|
|
it('should fire lifecycle events when navigating to and from a page - setup', () => {
|
|
cy.visit('/');
|
|
cy.ionPageVisible('home');
|
|
cy.get('#lifecycle-setup').click();
|
|
|
|
testLifecycle('lifecycle-setup', {
|
|
onIonViewWillEnter: 1,
|
|
onIonViewDidEnter: 1,
|
|
onIonViewWillLeave: 0,
|
|
onIonViewDidLeave: 0
|
|
});
|
|
|
|
cy.get('#lifecycle-navigation').click();
|
|
|
|
testLifecycle('lifecycle-setup', {
|
|
onIonViewWillEnter: 1,
|
|
onIonViewDidEnter: 1,
|
|
onIonViewWillLeave: 1,
|
|
onIonViewDidLeave: 1
|
|
});
|
|
|
|
cy.ionBackClick('navigation');
|
|
|
|
testLifecycle('lifecycle-setup', {
|
|
onIonViewWillEnter: 2,
|
|
onIonViewDidEnter: 2,
|
|
onIonViewWillLeave: 1,
|
|
onIonViewDidLeave: 1
|
|
});
|
|
});
|
|
|
|
it('should fire lifecycle events when landed on directly - setup', () => {
|
|
cy.visit('/lifecycle-setup');
|
|
|
|
testLifecycle('lifecycle-setup', {
|
|
onIonViewWillEnter: 1,
|
|
onIonViewDidEnter: 1,
|
|
onIonViewWillLeave: 0,
|
|
onIonViewDidLeave: 0
|
|
});
|
|
});
|
|
})
|
|
|
|
const testLifecycle = (selector, expected = {}) => {
|
|
if (expected.ionViewWillEnter) {
|
|
cy.get(`[data-pageid=${selector}] #willEnter`).should('have.text', expected.ionViewWillEnter);
|
|
}
|
|
if (expected.ionViewDidEnter) {
|
|
cy.get(`[data-pageid=${selector}] #didEnter`).should('have.text', expected.ionViewDidEnter);
|
|
}
|
|
if (expected.ionViewWillLeave) {
|
|
cy.get(`[data-pageid=${selector}] #willLeave`).should('have.text', expected.ionViewWillLeave);
|
|
}
|
|
if (expected.ionViewDidLeave) {
|
|
cy.get(`[data-pageid=${selector}] #didLeave`).should('have.text', expected.ionViewDidLeave);
|
|
}
|
|
cy.get(`[data-pageid=${selector}] #onWillEnter`).should('have.text', expected.onIonViewWillEnter);
|
|
cy.get(`[data-pageid=${selector}] #onDidEnter`).should('have.text', expected.onIonViewDidEnter);
|
|
cy.get(`[data-pageid=${selector}] #onWillLeave`).should('have.text', expected.onIonViewWillLeave);
|
|
cy.get(`[data-pageid=${selector}] #onDidLeave`).should('have.text', expected.onIonViewDidLeave);
|
|
}
|