import React, { useRef, useEffect } from 'react'; import { IonApp, IonRouterOutlet, IonPage } from '@ionic/react'; import { IonReactRouter } from '../IonReactRouter'; import { render } from '@testing-library/react'; import { Route } from 'react-router'; // import {Router} from '../Router'; describe('Router', () => { describe('on first page render', () => { let IonTestApp: React.ComponentType; beforeEach(() => { IonTestApp = ({ Page }) => { return ( ); }; }); it('should be visible', () => { const MyPage = () => { return (
hello
); }; const { container } = render(); const page = container.getElementsByClassName('ion-page')[0]; expect(page).not.toHaveClass('ion-page-invisible'); expect(page).toHaveStyle('z-index: 101') }); it('should fire initial lifecycle events', () => { const ionViewWillEnterListener = jest.fn(); const ionViewDidEnterListener = jest.fn(); const MyPage = () => { const ref = useRef(); useEffect(() => { ref.current.addEventListener('ionViewWillEnter', ionViewWillEnterListener); ref.current.addEventListener('ionViewDidEnter', ionViewDidEnterListener); }, []); return (
hello
); }; render(); expect(ionViewWillEnterListener).toHaveBeenCalledTimes(1); expect(ionViewDidEnterListener).toHaveBeenCalledTimes(1); }); }); });;