diff --git a/__tests__/src/lib/MiradorViewer.test.js b/__tests__/src/lib/MiradorViewer.test.js index f3f2702b66bfb4d40bcdf3e0851332257b56ae49..95e24df1a37ef6281bee1149ddec896302ff40fb 100644 --- a/__tests__/src/lib/MiradorViewer.test.js +++ b/__tests__/src/lib/MiradorViewer.test.js @@ -7,12 +7,19 @@ jest.mock('react-dom'); jest.mock('isomorphic-unfetch', () => jest.fn(() => Promise.resolve({ json: () => ({}) }))); describe('MiradorViewer', () => { + let container; let instance; beforeAll(() => { + container = document.createElement('div'); + container.id = 'mirador'; + document.body.appendChild(container); ReactDOM.render = jest.fn(); ReactDOM.unmountComponentAtNode = jest.fn(); instance = new MiradorViewer({ id: 'mirador' }); }); + afterAll(() => { + document.body.removeChild(container); + }); describe('constructor', () => { it('returns viewer store', () => { expect(instance.store.dispatch).toBeDefined(); diff --git a/src/lib/MiradorViewer.js b/src/lib/MiradorViewer.js index c9238b84d9057a70b8c96dd543ca2584177333ed..cd825870d784d8f94c418f620a51c7be3c83836c 100644 --- a/src/lib/MiradorViewer.js +++ b/src/lib/MiradorViewer.js @@ -19,10 +19,13 @@ class MiradorViewer { this.store = viewerConfig.store || createPluggableStore(this.config, this.plugins); - config.id && ReactDOM.render( - this.render(), - document.getElementById(config.id), - ); + if (config.id) { + this.container = document.getElementById(config.id); + config.id && ReactDOM.render( + this.render(), + this.container, + ); + } } /** @@ -40,7 +43,7 @@ class MiradorViewer { * Cleanup method to unmount Mirador from the dom */ unmount() { - this.config.id && ReactDOM.unmountComponentAtNode(document.getElementById(this.config.id)); + this.container && ReactDOM.unmountComponentAtNode(this.container); } }