Skip to content

Commit bf36439

Browse files
committed
test(overlays): improving overlay tests
1 parent 1b1988c commit bf36439

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed

packages/vue/test/base/src/views/Overlays.vue

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@
6464
Modal onDidPresent: <div id="didPresent">{{ didPresent }}</div><br />
6565
Modal onWillDismiss: <div id="willDismiss">{{ willDismiss }}</div><br />
6666
Modal onDidDismiss: <div id="didDismiss">{{ didDismiss }}</div><br />
67+
Modal ionModalWillPresent: <div id="ionModalWillPresent">{{ ionModalWillPresent }}</div><br />
68+
Modal ionModalDidPresent: <div id="ionModalDidPresent">{{ ionModalDidPresent }}</div><br />
69+
Modal ionModalWillDismiss: <div id="ionModalWillDismiss">{{ ionModalWillDismiss }}</div><br />
70+
Modal ionModalDidDismiss: <div id="ionModalDidDismiss">{{ ionModalDidDismiss }}</div><br />
6771
</div>
6872

6973
<ion-action-sheet
@@ -98,6 +102,10 @@
98102
@didPresent="onModalDidPresent"
99103
@willDismiss="onModalWillDismiss"
100104
@didDismiss="onModalDidDismiss"
105+
@ionModalWillPresent="onModalIonWillPresent"
106+
@ionModalDidPresent="onModalIonDidPresent"
107+
@ionModalWillDismiss="onModalIonWillDismiss"
108+
@ionModalDidDismiss="onModalIonDidDismiss"
101109
>
102110
<ModalContent :title="overlayProps.title"></ModalContent>
103111
</ion-modal>
@@ -335,21 +343,37 @@ export default defineComponent({
335343
const didPresent = ref(0);
336344
const willDismiss = ref(0);
337345
const didDismiss = ref(0);
346+
const ionModalWillPresent = ref(0);
347+
const ionModalDidPresent = ref(0);
348+
const ionModalWillDismiss = ref(0);
349+
const ionModalDidDismiss = ref(0);
338350
339351
const onModalWillPresent = () => willPresent.value += 1;
340352
const onModalDidPresent = () => { didPresent.value += 1; setModalRef(true); }
341353
const onModalWillDismiss = () => willDismiss.value += 1;
342354
const onModalDidDismiss = () => { didDismiss.value += 1; setModalRef(false); }
355+
const onModalIonWillPresent = () => ionModalWillPresent.value += 1;
356+
const onModalIonDidPresent = () => ionModalDidPresent.value += 1;
357+
const onModalIonWillDismiss = () => ionModalWillDismiss.value += 1;
358+
const onModalIonDidDismiss = () => ionModalDidDismiss.value += 1;
343359
344360
return {
345361
onModalWillPresent,
346362
onModalDidPresent,
347363
onModalWillDismiss,
348364
onModalDidDismiss,
365+
onModalIonWillPresent,
366+
onModalIonDidPresent,
367+
onModalIonWillDismiss,
368+
onModalIonDidDismiss,
349369
willPresent,
350370
didPresent,
351371
willDismiss,
352372
didDismiss,
373+
ionModalWillPresent,
374+
ionModalDidPresent,
375+
ionModalWillDismiss,
376+
ionModalDidDismiss,
353377
changeLoadingProps,
354378
overlayProps,
355379
present,

packages/vue/test/base/tests/e2e/specs/overlays.cy.js

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,49 @@ describe('Overlays', () => {
214214
});
215215
});
216216

217+
it('should fire long-form lifecycle events on overlays', () => {
218+
cy.get('ion-radio#ion-modal').click();
219+
cy.get('ion-radio#component').click();
220+
221+
cy.get('ion-button#present-overlay').click();
222+
cy.get('ion-modal').should('exist');
223+
224+
testLongLifecycle('overlays', {
225+
willPresent: 1,
226+
didPresent: 1,
227+
willDismiss: 0,
228+
didDismiss: 0
229+
});
230+
231+
cy.get('ion-modal #dismiss').click();
232+
233+
testLongLifecycle('overlays', {
234+
willPresent: 1,
235+
didPresent: 1,
236+
willDismiss: 1,
237+
didDismiss: 1
238+
});
239+
240+
cy.get('ion-button#present-overlay').click();
241+
cy.get('ion-modal').should('exist');
242+
243+
testLongLifecycle('overlays', {
244+
willPresent: 2,
245+
didPresent: 2,
246+
willDismiss: 1,
247+
didDismiss: 1
248+
});
249+
250+
cy.get('ion-modal #dismiss').click();
251+
252+
testLongLifecycle('overlays', {
253+
willPresent: 2,
254+
didPresent: 2,
255+
willDismiss: 2,
256+
didDismiss: 2
257+
});
258+
});
259+
217260
it('should unmount modal via component', () => {
218261
cy.get('ion-radio#ion-modal').click();
219262
cy.get('ion-radio#component').click();
@@ -260,3 +303,9 @@ const testLifecycle = (selector, expected = {}) => {
260303
cy.get(`[data-pageid=${selector}] #didDismiss`).should('have.text', expected.didDismiss);
261304
}
262305

306+
const testLongLifecycle = (selector, expected = {}) => {
307+
cy.get(`[data-pageid=${selector}] #ionModalWillPresent`).should('have.text', expected.willPresent);
308+
cy.get(`[data-pageid=${selector}] #ionModalDidPresent`).should('have.text', expected.didPresent);
309+
cy.get(`[data-pageid=${selector}] #ionModalWillDismiss`).should('have.text', expected.willDismiss);
310+
cy.get(`[data-pageid=${selector}] #ionModalDidDismiss`).should('have.text', expected.didDismiss);
311+
}

0 commit comments

Comments
 (0)