diff --git a/web/client/components/TOC/fragments/settings/Display.jsx b/web/client/components/TOC/fragments/settings/Display.jsx index 84321639a0a..2b7a97d4978 100644 --- a/web/client/components/TOC/fragments/settings/Display.jsx +++ b/web/client/components/TOC/fragments/settings/Display.jsx @@ -210,6 +210,7 @@ export default class extends React.Component { projection={this.props.projection} resolutions={this.props.resolutions} zoom={this.props.zoom} + defaultLimitsType={this.props.element.visibilityLimitType} /> diff --git a/web/client/components/TOC/fragments/settings/VisibilityLimitsForm.jsx b/web/client/components/TOC/fragments/settings/VisibilityLimitsForm.jsx index 5d1cc702e11..a69e50f8d31 100644 --- a/web/client/components/TOC/fragments/settings/VisibilityLimitsForm.jsx +++ b/web/client/components/TOC/fragments/settings/VisibilityLimitsForm.jsx @@ -392,6 +392,9 @@ function VisibilityLimitsForm({ disabled={disableResolutionLimits || loading} onChange={({ value }) => { setLimitsType(value); + onChange({ + visibilityLimitType: value + }); clearMessages(); }} /> diff --git a/web/client/components/TOC/fragments/settings/__tests__/VisibilityLimitsForm-test.jsx b/web/client/components/TOC/fragments/settings/__tests__/VisibilityLimitsForm-test.jsx index bd441c78bb0..9f97a6aa640 100644 --- a/web/client/components/TOC/fragments/settings/__tests__/VisibilityLimitsForm-test.jsx +++ b/web/client/components/TOC/fragments/settings/__tests__/VisibilityLimitsForm-test.jsx @@ -9,7 +9,7 @@ import expect from 'expect'; import React from 'react'; import ReactDOM from 'react-dom'; -import { act } from 'react-dom/test-utils'; +import ReactTestUtils, { act } from 'react-dom/test-utils'; import VisibilityLimitsForm from '../VisibilityLimitsForm'; describe('VisibilityLimitsForm', () => { @@ -96,4 +96,32 @@ describe('VisibilityLimitsForm', () => { const buttons = document.querySelectorAll('.square-button-md'); expect(buttons.length).toBe(1); }); + + it("Should call onChange after visibilityLimitType change ", () => { + const layer = { + type: 'wms' + }; + const handlers = { + onChange: () => {} + }; + let spyUpdate = expect.spyOn(handlers, "onChange"); + + act(()=>ReactDOM.render(, document.getElementById('container'))); + + // Simpulate selection + const selectArrow = document.getElementById("container").querySelectorAll('.Select-arrow'); + const selectControl = document.getElementById("container").querySelectorAll('.Select-control'); + const inputs = document.getElementsByTagName("input"); + ReactTestUtils.Simulate.mouseDown(selectArrow[2], { button: 0 }); + ReactTestUtils.Simulate.keyDown(selectControl[2], { keyCode: 40, key: 'ArrowDown' }); + ReactTestUtils.Simulate.keyDown(inputs[3], { keyCode: 13, key: 'Enter' }); + expect(spyUpdate.calls.length).toBe(1); + expect(Object.keys(spyUpdate.calls[0].arguments[0])).toEqual(['visibilityLimitType']); + + }); + + });