From 29b42d7ef9abc5ee13e47403575ee518f479f5ba Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Mon, 13 Dec 2021 12:33:54 +0100 Subject: [PATCH] Test removeLayerAt --- src/style_manager/model/PropertyStack.js | 13 ++++++++++++- test/specs/style_manager/model/Properties.js | 8 ++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/style_manager/model/PropertyStack.js b/src/style_manager/model/PropertyStack.js index 5ba998321..99f7e7b82 100644 --- a/src/style_manager/model/PropertyStack.js +++ b/src/style_manager/model/PropertyStack.js @@ -153,9 +153,20 @@ export default Property.extend({ /** * Remove layer * @param {[Layer]} layer + * @returns {[Layer]} Removed layer */ removeLayer(layer) { - this.get('layers').remove(layer); + return this.get('layers').remove(layer); + }, + + /** + * Remove layer at index + * @param {Number} index Index of the layer to remove + * @returns {[Layer] | null} Removed layer + */ + removeLayerAt(index = 0) { + const layer = this.getLayer(index); + return layer ? this.removeLayer(layer) : null; }, /** diff --git a/test/specs/style_manager/model/Properties.js b/test/specs/style_manager/model/Properties.js index 3521d4758..cfcfbb35f 100644 --- a/test/specs/style_manager/model/Properties.js +++ b/test/specs/style_manager/model/Properties.js @@ -156,5 +156,13 @@ describe('StyleManager properties logic', () => { [propTest]: 'valueA-1 valueB-1-mod valueC-1, valueA-2 valueB-2 valueC-2-mod', }); }); + + test('Removing layer, updates the rule', () => { + compTypeProp.removeLayerAt(1); + expect(rule1.getStyle()).toEqual({ + __p: false, + [propTest]: 'valueA-1 valueB-1 valueC-1', + }); + }); }); });