diff --git a/web/client/components/widgets/enhancers/legendWidget.js b/web/client/components/widgets/enhancers/legendWidget.js index f0aa5aaa86..17320818ed 100644 --- a/web/client/components/widgets/enhancers/legendWidget.js +++ b/web/client/components/widgets/enhancers/legendWidget.js @@ -18,8 +18,8 @@ const {getScales} = require('../../../utils/MapUtils'); * Add also base tools and menu to the widget */ module.exports = compose( - withProps(({ dependencies = {} }) => ({ - layers: dependencies.layers || [], + withProps(({ dependencies = {}, dependenciesMap = {} }) => ({ + layers: dependencies[dependenciesMap.layers] || dependencies.layers || [], scales: getScales( // TODO: this is a fallback that checks the viewport if projection is not defined. We should use only projection dependencies.projection || dependencies.viewport && dependencies.viewport.crs || 'EPSG:3857', diff --git a/web/client/components/widgets/widget/__tests__/LegendWidget-test.jsx b/web/client/components/widgets/widget/__tests__/LegendWidget-test.jsx index 9d44501a8e..05c776205b 100644 --- a/web/client/components/widgets/widget/__tests__/LegendWidget-test.jsx +++ b/web/client/components/widgets/widget/__tests__/LegendWidget-test.jsx @@ -17,6 +17,7 @@ const LegendWidget = compose( defaultProps({canEdit: true}), legendWidget )(require('../LegendWidget')); + describe('LegendWidget component', () => { beforeEach((done) => { document.body.innerHTML = '
'; @@ -73,4 +74,41 @@ describe('LegendWidget component', () => { expect(el).toExist(); expect(container.querySelector('.compact-legend-grid')).toExist(); }); + it('LegendWidget rendering with layers specified in dependenciesMap', () => { + const layers = [ + { + type: 'wms', + url: 'https://gs-stable.geo-solutions.it/geoserver/wms', + visibility: true, + dimensions: [], + name: 'gs:us_states', + title: 'States of US', + description: '', + bbox: { + crs: 'EPSG:4326', + bounds: { + minx: -124.73142200000001, + miny: 24.955967, + maxx: -66.969849, + maxy: 49.371735 + } + }, + links: [], + params: {}, + allowedSRS: {}, + search: { + type: 'wfs', + url: 'https://gs-stable.geo-solutions.it/geoserver/wfs' + }, + id: 'gs:us_states__qxhbmc4jmko' + } + ]; + ReactDOM.render(, document.getElementById("container")); + const container = document.getElementById('container'); + const el = container.querySelector('.mapstore-widget-card'); + expect(el).toExist(); + expect(container.querySelector('.compact-legend-grid')).toExist(); + }); });