123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { Lifecycle } from './Lifecycle';
- import { Store } from '../components/Store';
-
- describe('Lifecycle', () => {
- let store;
- let uut;
- let mockRef;
-
- beforeEach(() => {
- mockRef = {
- didAppear: jest.fn(),
- didDisappear: jest.fn(),
- onNavigationButtonPressed: jest.fn()
- };
- store = new Store();
- store.setRefForComponentId('myUniqueId', mockRef);
-
- uut = new Lifecycle(store);
- });
-
- describe('componentDidAppear', () => {
- it('calls didAppear on component ref from store', () => {
- uut.componentDidAppear('myUniqueId');
- expect(mockRef.didAppear).toHaveBeenCalledTimes(1);
- });
-
- it('skips undefined refs', () => {
- uut.componentDidAppear('myUniqueId2');
- expect(mockRef.didAppear).not.toHaveBeenCalled();
- });
-
- it('skips unimplemented didAppear', () => {
- mockRef = {};
- expect(mockRef.didAppear).toBeUndefined();
- store.setRefForComponentId('myUniqueId', mockRef);
- uut.componentDidAppear('myUniqueId');
- });
- });
-
- describe('componentDidDisappear', () => {
- it('calls didDisappear on component ref from store', () => {
- uut.componentDidDisappear('myUniqueId');
- expect(mockRef.didDisappear).toHaveBeenCalledTimes(1);
- });
-
- it('skips undefined refs', () => {
- uut.componentDidDisappear('myUniqueId2');
- expect(mockRef.didDisappear).not.toHaveBeenCalled();
- });
-
- it('skips unimplemented didDisappear', () => {
- mockRef = {};
- expect(mockRef.didDisappear).toBeUndefined();
- store.setRefForComponentId('myUniqueId', mockRef);
- uut.componentDidDisappear('myUniqueId');
- });
- });
-
- describe('onNavigationButtonPressed', () => {
- it('calls onNavigationButtonPressed on component ref from store', () => {
- uut.onNavigationButtonPressed({
- componentId: 'myUniqueId',
- buttonId: 'myButtonId'
- });
- expect(mockRef.onNavigationButtonPressed).toHaveBeenCalledTimes(1);
- });
-
- it('skips undefined refs', () => {
- uut.onNavigationButtonPressed('myButtonId');
- expect(mockRef.didDisappear).not.toHaveBeenCalled();
- });
-
- it('skips unimplemented onNavigationButtonPressed', () => {
- mockRef = {};
- expect(mockRef.onNavigationButtonPressed).toBeUndefined();
- store.setRefForComponentId('myUniqueId', mockRef);
- uut.componentDidAppear('myUniqueId');
- });
- });
- });
|