• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

geosolutions-it / MapStore2 / 19710972030

26 Nov 2025 03:38PM UTC coverage: 76.665% (-0.3%) from 76.929%
19710972030

Pull #11119

github

web-flow
Fix maven publish (#11739)
Pull Request #11119: Layer Selection Plugin on ArcGIS, WFS & WMS layers

32272 of 50209 branches covered (64.28%)

3 of 3 new or added lines in 2 files covered. (100.0%)

3018 existing lines in 249 files now uncovered.

40157 of 52380 relevant lines covered (76.66%)

37.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.22
/web/client/selectors/query.js
1
/**
2
* Copyright 2016, GeoSolutions Sas.
3
* All rights reserved.
4
*
5
* This source code is licensed under the BSD-style license found in the
6
* LICENSE file in the root directory of this source tree.
7
*/
8

9
import { isNil, get, head, isArray, findIndex } from 'lodash';
10

11
/**
12
 * Selects the featureType name of the query filterObject
13
 * @param {object} state
14
 */
15
export const queryFeatureTypeName = state => get(state, "query.filterObj.featureTypeName");
45✔
16
/**
17
 * Create a selector for the featureType data (attributes and so on) for the featureType provided as parameter
18
 * @param {string} featureTypeName
19
 * @return {function} a selector to get the featureType data
20
 */
21
export const featureTypeSelectorCreator = (featureTypeName) => state => get(state, `query.featureTypes["${featureTypeName}"]`);
53✔
22

23
/**
24
 * Returns the original DescribeFeature JSON object of the passed featureType from the state
25
 * @param {object} state the application state
26
 * @param {string} featureTypeName the featureType name
27
 */
28
export const layerDescribeSelector = (state, featureTypeName) => get(featureTypeSelectorCreator(featureTypeName)(state), 'original');
38✔
29

30
/**
31
 * selects query state
32
 * @name query
33
 * @memberof selectors
34
 * @static
35
 */
36

37

38
export const wfsURL = state => state && state.query && state.query.searchUrl;
8✔
39
export const wfsURLSelector = state => state && state.query && state.query.url;
5✔
40
export const wfsFilter = state => state && state.query && state.query.filterObj;
14✔
41
export const attributesSelector = state => get(featureTypeSelectorCreator(queryFeatureTypeName(state))(state), `attributes`);
3✔
42
export const typeNameSelector = state => get(state, "query.typeName");
5✔
43
export const resultsSelector = (state) => get(state, "query.result.features");
2✔
44
export const featureCollectionResultSelector = state => {
1✔
45
    const results = get(state, "query.result");
2✔
46
    return {
2✔
47
        ...results,
48
        features: (results && results.features || []).filter(f => !isNil(f.geometry))
9!
49
    };
50
};
51
export const getFeatureById = (state, id) => {
1✔
52
    let features = state && state.query && state.query.result && state.query.result.features;
1✔
53
    return head(features.filter(f => f.id === id));
5✔
54
};
55
export const paginationInfo = {
1✔
56
    startIndex: (state) => get(state, "query.filterObj.pagination.startIndex"),
6✔
57
    maxFeatures: (state) => get(state, "query.filterObj.pagination.maxFeatures"),
6✔
58
    resultSize: (state) =>get(state, "query.result.features.length"),
6✔
59
    totalFeatures: (state) => get(state, "query.result.totalFeatures")
17✔
60
};
61
export const isDescribeLoaded = (state, name) => {
1✔
62
    const ft = featureTypeSelectorCreator(name)(state);
6✔
63
    if (ft && ft.attributes && ft.geometry && ft.original) {
6✔
64
        return true;
1✔
65
    }
66
    return false;
5✔
67
};
68
export const describeSelector = (state) => layerDescribeSelector(state, queryFeatureTypeName(state));
38✔
69
export const attributesJSONSchemaSelector = state => get(featureTypeSelectorCreator(queryFeatureTypeName(state))(state), `attributesJSONSchema`);
4✔
70
export const featureLoadingSelector = (state) => get(state, "query.featureLoading");
6✔
71
export const isSyncWmsActive = (state) => get(state, "query.syncWmsFilter", false);
10✔
72
/**
73
 * return true if a filter is applied to query
74
 * @memberof selectors.query
75
 * @param  {object} state the state
76
 * @return {boolean}
77
 */
78
export const isFilterActive = state => {
1✔
79
    const crossLayerFilter = get(state, 'query.filterObj.crossLayerFilter');
6✔
80
    const spatialField = get(state, 'query.filterObj.spatialField');
6✔
81
    const filterFields = get(state, 'query.filterObj.filterFields');
6✔
82
    return !!(filterFields && head(filterFields)
6!
83
    || spatialField && (spatialField.method && spatialField.operation && spatialField.geometry ||
UNCOV
84
        isArray(spatialField) && findIndex(spatialField, field => field.method && field.operation && field.geometry) > -1)
×
85
    || crossLayerFilter && crossLayerFilter.collectGeometries && crossLayerFilter.operation);
86
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc