diff --git a/web/client/plugins/TOC.jsx b/web/client/plugins/TOC.jsx index 93d3e1b62a..37cf80687e 100644 --- a/web/client/plugins/TOC.jsx +++ b/web/client/plugins/TOC.jsx @@ -343,7 +343,7 @@ class LayerTree extends React.Component {
(g.nodes || []).length) || []).length} showTools={this.props.activateToolsContainer} onClear={() => { this.props.onSelectNode(); }} onFilter={this.props.onFilter} diff --git a/web/client/plugins/__tests__/TOC-test.jsx b/web/client/plugins/__tests__/TOC-test.jsx index f6d14b5dea..5c3248507e 100644 --- a/web/client/plugins/__tests__/TOC-test.jsx +++ b/web/client/plugins/__tests__/TOC-test.jsx @@ -49,6 +49,7 @@ describe('TOCPlugin Plugin', () => { ReactDOM.render(, document.getElementById("container")); expect(document.querySelector('.toc-title').textContent).toBe('Annotations'); expect(document.querySelector('.toc-group-title').textContent).toBe('Default'); + expect(document.querySelectorAll('.mapstore-filter.form-group').length).toBe(1); }); it('TOCPlugin hides annotations layer and empty group in cesium mapType', () => { @@ -80,4 +81,30 @@ describe('TOCPlugin Plugin', () => { expect(document.querySelectorAll('.toc-title').length).toBe(1); expect(document.querySelectorAll('.toc-group-title').length).toBe(1); }); + it('TOCPlugin hides filter layer if no groups and no layers are present', () => { + const { Plugin } = getPluginForTest(TOCPlugin, { + layers: { + groups: [{ id: 'default', title: 'Default', nodes: [] }], + flat: [] + }, + maptype: { + mapType: 'openlayers' + } + }); + ReactDOM.render(, document.getElementById("container")); + expect(document.querySelectorAll('.mapstore-filter.form-group').length).toBe(0); + }); + it('TOCPlugin hides filter layer if a group with no layers are present', () => { + const { Plugin } = getPluginForTest(TOCPlugin, { + layers: { + groups: [], + flat: [] + }, + maptype: { + mapType: 'openlayers' + } + }); + ReactDOM.render(, document.getElementById("container")); + expect(document.querySelectorAll('.mapstore-filter.form-group').length).toBe(0); + }); });