import * as React from 'react'; import Image from '../image'; import { getMapMock } from '../jest/util'; import { mount } from 'enzyme'; describe('Image', () => { it('Should add image on mount', () => { const mapMock = getMapMock(); const onLoaded = jest.fn(); const onError = jest.fn(); const imageId = 'image'; const imageData = {}; const imageOptions = {}; mount( ); expect(mapMock.addImage.mock.calls[0]).toEqual([ imageId, imageData, imageOptions ]); expect(onLoaded).toBeCalled(); expect(onError).not.toBeCalled(); }); it('Should remove image on unmount', () => { const mapMock = getMapMock({ getStyle: jest.fn(() => ({})) }); const onLoaded = jest.fn(); const onError = jest.fn(); const imageId = 'image'; const imageData = {}; const imageOptions = {}; const component = mount( ); expect(mapMock.addImage).toBeCalled(); expect(onLoaded).toBeCalled(); component.unmount(); expect(mapMock.removeImage).toBeCalled(); }); it('Should not call removeImage when map styles are undefined', () => { const mapMock = getMapMock({ getStyle: jest.fn(() => undefined) }); const onLoaded = jest.fn(); const onError = jest.fn(); const imageId = 'image'; const imageData = {}; const imageOptions = {}; const component = mount( ); expect(onLoaded).toBeCalled(); component.unmount(); expect(mapMock.removeImage).not.toBeCalled(); }); });