@kalisio/kdk 1.4.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/{0f1a87aa-d3bb-4c61-8c1e-12294055358d.json → 058fc679-d60a-4501-ac04-71171e5200b8.json} +0 -0
- package/.nyc_output/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +1 -0
- package/.nyc_output/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
- package/.nyc_output/{8be4cd9f-124a-41f9-80f4-f267ced63c86.json → 8b1830fa-932e-4a61-9837-4a5b18f83ea9.json} +0 -0
- package/.nyc_output/{a63b0924-fd09-4e30-974f-cb4be2243b66.json → afd2d144-3570-4858-b94a-b523dbd023dd.json} +0 -0
- package/.nyc_output/processinfo/058fc679-d60a-4501-ac04-71171e5200b8.json +1 -0
- package/.nyc_output/processinfo/{27204015-ebfd-456f-a3bb-6a94f71946b8.json → 2226bcce-9d22-4dad-b9fa-46564b5565c7.json} +1 -1
- package/.nyc_output/processinfo/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
- package/.nyc_output/processinfo/8b1830fa-932e-4a61-9837-4a5b18f83ea9.json +1 -0
- package/.nyc_output/processinfo/afd2d144-3570-4858-b94a-b523dbd023dd.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +219 -68
- package/coverage/core/api/application.js.html +455 -455
- package/coverage/core/api/authentication.js.html +119 -119
- package/coverage/core/api/db.js.html +201 -201
- package/coverage/core/api/hooks/hooks.account.js.html +48 -48
- package/coverage/core/api/hooks/hooks.authentication.js.html +64 -64
- package/coverage/core/api/hooks/hooks.authorisations.js.html +353 -353
- package/coverage/core/api/hooks/hooks.devices.js.html +22 -22
- package/coverage/core/api/hooks/hooks.groups.js.html +37 -37
- package/coverage/core/api/hooks/hooks.logger.js.html +27 -27
- package/coverage/core/api/hooks/hooks.model.js.html +269 -269
- package/coverage/core/api/hooks/hooks.organisations.js.html +183 -231
- package/coverage/core/api/hooks/hooks.pusher.js.html +114 -114
- package/coverage/core/api/hooks/hooks.query.js.html +200 -200
- package/coverage/core/api/hooks/hooks.service.js.html +82 -82
- package/coverage/core/api/hooks/hooks.storage.js.html +121 -121
- package/coverage/core/api/hooks/hooks.tags.js.html +232 -232
- package/coverage/core/api/hooks/hooks.users.js.html +261 -261
- package/coverage/core/api/hooks/index.html +167 -167
- package/coverage/core/api/hooks/index.js.html +24 -24
- package/coverage/core/api/index.html +75 -75
- package/coverage/core/api/index.js.html +26 -26
- package/coverage/core/api/marshall.js.html +57 -57
- package/coverage/core/api/models/groups.model.mongodb.js.html +20 -20
- package/coverage/core/api/models/index.html +50 -50
- package/coverage/core/api/models/organisations.model.mongodb.js.html +12 -12
- package/coverage/core/api/models/tags.model.mongodb.js.html +22 -22
- package/coverage/core/api/models/users.model.mongodb.js.html +20 -20
- package/coverage/core/api/oauth2-handler.js.html +18 -18
- package/coverage/core/api/oauth2-verifier.js.html +38 -38
- package/coverage/core/api/services/account/account.hooks.js.html +16 -16
- package/coverage/core/api/services/account/account.service.js.html +108 -108
- package/coverage/core/api/services/account/index.html +32 -32
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +132 -132
- package/coverage/core/api/services/authorisations/index.html +28 -28
- package/coverage/core/api/services/databases/databases.hooks.js.html +9 -9
- package/coverage/core/api/services/databases/databases.service.js.html +12 -12
- package/coverage/core/api/services/databases/index.html +24 -24
- package/coverage/core/api/services/devices/devices.hooks.js.html +9 -9
- package/coverage/core/api/services/devices/devices.service.js.html +61 -61
- package/coverage/core/api/services/devices/index.html +22 -22
- package/coverage/core/api/services/groups/groups.hooks.js.html +9 -9
- package/coverage/core/api/services/groups/index.html +13 -13
- package/coverage/core/api/services/index.html +21 -21
- package/coverage/core/api/services/index.js.html +137 -137
- package/coverage/core/api/services/mailer/index.html +24 -24
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +9 -9
- package/coverage/core/api/services/mailer/mailer.service.js.html +19 -19
- package/coverage/core/api/services/organisations/index.html +24 -24
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +8 -8
- package/coverage/core/api/services/organisations/organisations.service.js.html +67 -67
- package/coverage/core/api/services/pusher/index.html +32 -32
- package/coverage/core/api/services/pusher/pusher.channels.js.html +8 -8
- package/coverage/core/api/services/pusher/pusher.hooks.js.html +10 -10
- package/coverage/core/api/services/pusher/pusher.service.js.html +336 -336
- package/coverage/core/api/services/storage/index.html +21 -21
- package/coverage/core/api/services/storage/storage.hooks.js.html +35 -35
- package/coverage/core/api/services/tags/index.html +21 -21
- package/coverage/core/api/services/tags/tags.hooks.js.html +25 -25
- package/coverage/core/api/services/users/index.html +21 -21
- package/coverage/core/api/services/users/users.hooks.js.html +33 -33
- package/coverage/core/common/errors.js.html +1 -1
- package/coverage/core/common/index.html +42 -27
- package/coverage/core/common/index.js.html +16 -16
- package/coverage/core/common/permissions.js.html +274 -274
- package/coverage/index.html +174 -174
- package/coverage/lcov-report/core/api/application.js.html +455 -455
- package/coverage/lcov-report/core/api/authentication.js.html +119 -119
- package/coverage/lcov-report/core/api/db.js.html +201 -201
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +48 -48
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +64 -64
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +353 -353
- package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +22 -22
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +37 -37
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +27 -27
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +269 -269
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +183 -231
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +114 -114
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +200 -200
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +82 -82
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +121 -121
- package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +232 -232
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +261 -261
- package/coverage/lcov-report/core/api/hooks/index.html +167 -167
- package/coverage/lcov-report/core/api/hooks/index.js.html +24 -24
- package/coverage/lcov-report/core/api/index.html +75 -75
- package/coverage/lcov-report/core/api/index.js.html +26 -26
- package/coverage/lcov-report/core/api/marshall.js.html +57 -57
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +20 -20
- package/coverage/lcov-report/core/api/models/index.html +50 -50
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +12 -12
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +22 -22
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +20 -20
- package/coverage/lcov-report/core/api/oauth2-handler.js.html +18 -18
- package/coverage/lcov-report/core/api/oauth2-verifier.js.html +38 -38
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +16 -16
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +108 -108
- package/coverage/lcov-report/core/api/services/account/index.html +32 -32
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +132 -132
- package/coverage/lcov-report/core/api/services/authorisations/index.html +28 -28
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +12 -12
- package/coverage/lcov-report/core/api/services/databases/index.html +24 -24
- package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +61 -61
- package/coverage/lcov-report/core/api/services/devices/index.html +22 -22
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/groups/index.html +13 -13
- package/coverage/lcov-report/core/api/services/index.html +21 -21
- package/coverage/lcov-report/core/api/services/index.js.html +137 -137
- package/coverage/lcov-report/core/api/services/mailer/index.html +24 -24
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +9 -9
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +19 -19
- package/coverage/lcov-report/core/api/services/organisations/index.html +24 -24
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +8 -8
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +67 -67
- package/coverage/lcov-report/core/api/services/pusher/index.html +32 -32
- package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +8 -8
- package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +10 -10
- package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +336 -336
- package/coverage/lcov-report/core/api/services/storage/index.html +21 -21
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +35 -35
- package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +25 -25
- package/coverage/lcov-report/core/api/services/users/index.html +21 -21
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +33 -33
- package/coverage/lcov-report/core/common/errors.js.html +1 -1
- package/coverage/lcov-report/core/common/index.html +42 -27
- package/coverage/lcov-report/core/common/index.js.html +16 -16
- package/coverage/lcov-report/core/common/permissions.js.html +274 -274
- package/coverage/lcov-report/index.html +174 -174
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +72 -18
- package/coverage/lcov-report/map/api/hooks/index.html +7 -7
- package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
- package/coverage/lcov-report/map/api/index.html +1 -1
- package/coverage/lcov-report/map/api/index.js.html +1 -1
- package/coverage/lcov-report/map/api/marshall.js.html +1 -1
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/index.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/features/index.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
- package/coverage/lcov-report/map/api/services/index.html +1 -1
- package/coverage/lcov-report/map/api/services/index.js.html +1 -1
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/errors.js.html +1 -1
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/grid.js.html +1 -1
- package/coverage/lcov-report/map/common/index.html +1 -1
- package/coverage/lcov-report/map/common/index.js.html +1 -1
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/permissions.js.html +1 -1
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
- package/coverage/lcov.info +3289 -3610
- package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
- package/coverage/map/api/hooks/hooks.query.js.html +72 -18
- package/coverage/map/api/hooks/index.html +7 -7
- package/coverage/map/api/hooks/index.js.html +1 -1
- package/coverage/map/api/index.html +1 -1
- package/coverage/map/api/index.js.html +1 -1
- package/coverage/map/api/marshall.js.html +1 -1
- package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/index.html +1 -1
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/map/api/services/alerts/index.html +1 -1
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
- package/coverage/map/api/services/catalog/index.html +1 -1
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/map/api/services/daptiles/index.html +1 -1
- package/coverage/map/api/services/features/features.hooks.js.html +1 -1
- package/coverage/map/api/services/features/index.html +1 -1
- package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
- package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
- package/coverage/map/api/services/geocoder/index.html +1 -1
- package/coverage/map/api/services/index.html +1 -1
- package/coverage/map/api/services/index.js.html +1 -1
- package/coverage/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/map/common/errors.js.html +1 -1
- package/coverage/map/common/geotiff-grid-source.js.html +1 -1
- package/coverage/map/common/grid.js.html +1 -1
- package/coverage/map/common/index.html +1 -1
- package/coverage/map/common/index.js.html +1 -1
- package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/map/common/moment-utils.js.html +1 -1
- package/coverage/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/map/common/opendap-utils.js.html +1 -1
- package/coverage/map/common/permissions.js.html +1 -1
- package/coverage/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/map/common/tms-utils.js.html +1 -1
- package/coverage/map/common/wcs-grid-source.js.html +1 -1
- package/coverage/map/common/wcs-utils.js.html +1 -1
- package/coverage/map/common/weacast-grid-source.js.html +1 -1
- package/coverage/map/common/wfs-utils.js.html +1 -1
- package/coverage/map/common/wms-utils.js.html +1 -1
- package/coverage/map/common/wmts-utils.js.html +1 -1
- package/lib/core/client/components/collection/KBoard.vue +6 -0
- package/lib/core/client/components/collection/KColumn.vue +2 -2
- package/lib/core/client/components/collection/KHistory.vue +14 -6
- package/lib/core/client/components/collection/KHistoryEntry.vue +7 -3
- package/lib/core/client/components/form/KFileField.vue +11 -40
- package/lib/core/client/components/frame/KChipsPane.vue +2 -2
- package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
- package/lib/core/client/i18n/core_en.json +7 -1
- package/lib/core/client/i18n/core_fr.json +7 -1
- package/lib/core/client/index.js +18 -0
- package/lib/core/client/index.js.map +1 -1
- package/lib/core/client/layout.js +8 -1
- package/lib/core/client/layout.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-collection.js +8 -2
- package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
- package/lib/core/client/reader.js +54 -0
- package/lib/core/client/reader.js.map +1 -0
- package/lib/core/client/readers/index.js +30 -0
- package/lib/core/client/readers/index.js.map +1 -0
- package/lib/core/client/readers/reader.csv.js +43 -0
- package/lib/core/client/readers/reader.csv.js.map +1 -0
- package/lib/core/client/readers/reader.json.js +38 -0
- package/lib/core/client/readers/reader.json.js.map +1 -0
- package/lib/core/client/services/index.js +1 -3
- package/lib/core/client/services/index.js.map +1 -1
- package/lib/core/client/time.js +4 -1
- package/lib/core/client/time.js.map +1 -1
- package/lib/map/api/hooks/hooks.query.js +30 -13
- package/lib/map/api/hooks/hooks.query.js.map +1 -1
- package/lib/map/client/components/KCaptureToolbar.vue +156 -0
- package/lib/map/client/components/KFeaturesFilter.vue +3 -1
- package/lib/map/client/components/KLayerEditionToolbar.vue +19 -11
- package/lib/map/client/components/KLayerStyleEditor.vue +2 -1
- package/lib/map/client/components/KLayerStyleForm.vue +34 -23
- package/lib/map/client/components/KLocationMap.vue +3 -1
- package/lib/map/client/components/KMeasureTool.vue +340 -0
- package/lib/map/client/components/KPositionIndicator.vue +1 -0
- package/lib/map/client/components/KTimeline.vue +7 -8
- package/lib/map/client/components/catalog/KImportLayer.vue +8 -35
- package/lib/map/client/components/catalog/KLayersSelector.vue +13 -11
- package/lib/map/client/components/form/KOwsLayerField.vue +7 -0
- package/lib/map/client/components/widget/KMapillaryViewer.vue +1 -1
- package/lib/map/client/components/widget/KTimeSeries.vue +81 -3
- package/lib/map/client/i18n/map_en.json +43 -5
- package/lib/map/client/i18n/map_fr.json +43 -5
- package/lib/map/client/init.js +6 -1
- package/lib/map/client/init.js.map +1 -1
- package/lib/map/client/leaflet/MaskLayer.js +12 -3
- package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.base-globe.js +3 -5
- package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js +0 -4
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.popup.js +4 -0
- package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.tooltip.js +4 -0
- package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js +46 -7
- package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.canvas-layers.js +2 -0
- package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.file-layers.js +47 -101
- package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.geojson-layers.js +9 -5
- package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js +0 -4
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.popup.js +4 -0
- package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tooltip.js +4 -0
- package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
- package/lib/map/client/mixins/mixin.activity.js +2 -0
- package/lib/map/client/mixins/mixin.activity.js.map +1 -1
- package/lib/map/client/mixins/mixin.context.js +26 -3
- package/lib/map/client/mixins/mixin.context.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-service.js +4 -4
- package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
- package/lib/map/client/mixins/mixin.infobox.js +4 -0
- package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
- package/lib/map/client/readers/index.js +42 -0
- package/lib/map/client/readers/index.js.map +1 -0
- package/lib/map/client/readers/reader.geojson.js +59 -0
- package/lib/map/client/readers/reader.geojson.js.map +1 -0
- package/lib/map/client/readers/reader.gpx.js +41 -0
- package/lib/map/client/readers/reader.gpx.js.map +1 -0
- package/lib/map/client/readers/reader.kml.js +41 -0
- package/lib/map/client/readers/reader.kml.js.map +1 -0
- package/lib/map/client/utils.js +2 -1
- package/lib/map/client/utils.js.map +1 -1
- package/lib/test/client/core/runner.js +1 -2
- package/lib/test/client/core/runner.js.map +1 -1
- package/lib/test/client/core/utils.js +58 -38
- package/lib/test/client/core/utils.js.map +1 -1
- package/lib/test/client/map/catalog.js +50 -49
- package/lib/test/client/map/catalog.js.map +1 -1
- package/package.json +3 -3
- package/.nyc_output/27204015-ebfd-456f-a3bb-6a94f71946b8.json +0 -1
- package/.nyc_output/d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json +0 -1
- package/.nyc_output/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
- package/.nyc_output/fb790367-ba9f-474f-84c1-f836caf9f50a.json +0 -1
- package/.nyc_output/processinfo/0f1a87aa-d3bb-4c61-8c1e-12294055358d.json +0 -1
- package/.nyc_output/processinfo/8be4cd9f-124a-41f9-80f4-f267ced63c86.json +0 -1
- package/.nyc_output/processinfo/a63b0924-fd09-4e30-974f-cb4be2243b66.json +0 -1
- package/.nyc_output/processinfo/d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json +0 -1
- package/.nyc_output/processinfo/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
- package/.nyc_output/processinfo/fb790367-ba9f-474f-84c1-f836caf9f50a.json +0 -1
- package/extras/testcafe/Dockerfile +0 -48
- package/extras/testcafe/docker-entrypoint.sh +0 -27
- package/extras/testcafe/page-models/core/account.js +0 -75
- package/extras/testcafe/page-models/core/base-collection.js +0 -41
- package/extras/testcafe/page-models/core/base-page.js +0 -25
- package/extras/testcafe/page-models/core/groups.js +0 -36
- package/extras/testcafe/page-models/core/index.js +0 -140
- package/extras/testcafe/page-models/core/layout.js +0 -145
- package/extras/testcafe/page-models/core/members.js +0 -98
- package/extras/testcafe/page-models/core/organisations.js +0 -76
- package/extras/testcafe/page-models/core/screens.js +0 -99
- package/extras/testcafe/page-models/core/tags.js +0 -21
- package/extras/testcafe/page-models/map/add-layer.js +0 -51
- package/extras/testcafe/page-models/map/catalog.js +0 -132
- package/extras/testcafe/page-models/map/index.js +0 -36
- package/extras/testcafe/page-models/map/map-activity.js +0 -42
- package/extras/testcafe/page-models/map/timeline.js +0 -67
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Selector } from 'testcafe'
|
|
2
|
-
import VueSelector from 'testcafe-vue-selectors'
|
|
3
|
-
import BaseCollection from './base-collection'
|
|
4
|
-
import Layout from './layout'
|
|
5
|
-
|
|
6
|
-
export default class Organisations extends BaseCollection {
|
|
7
|
-
constructor () {
|
|
8
|
-
super('organisationsGrid', 'QCard')
|
|
9
|
-
this.layout = new Layout()
|
|
10
|
-
// Organisation editor
|
|
11
|
-
this.editorNameField = VueSelector('k-text-field').nth(0)
|
|
12
|
-
this.editoDescriptionField = VueSelector('k-text-field').nth(1)
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
static get ENTRY () {
|
|
16
|
-
return 'my-organisations'
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
static get PROPERTIES_ENTRY () {
|
|
20
|
-
return 'edit-organisation'
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
static get MEMBERS_ENTRY () {
|
|
24
|
-
return 'organisation-members'
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
static get TAGS_ENTRY () {
|
|
28
|
-
return 'organisation-tags'
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
static get GROUPS_ENTRY () {
|
|
32
|
-
return 'organisation-groups'
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
async goTo (test, name, route, wait = Organisations.LONG_WAIT) {
|
|
36
|
-
await this.clickAction(test, name, route, wait)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
async goToMembers (test, name) {
|
|
40
|
-
await this.goTo(test, name, Organisations.MEMBERS_ENTRY)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async goToTags (test, name) {
|
|
44
|
-
await this.goTo(test, name, Organisations.TAGS_ENTRY)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
async goToGroups (test, name) {
|
|
48
|
-
await this.goTo(test, name, Organisations.GROUPS_ENTRY)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
async create (test, name, description) {
|
|
52
|
-
await this.layout.clickFab(test, 'create-organisation')
|
|
53
|
-
await test
|
|
54
|
-
.typeText(this.editorNameField, name, { replace: true })
|
|
55
|
-
.typeText(this.editoDescriptionField, description, { replace: true })
|
|
56
|
-
.click(Selector('.q-dialog #apply-button'))
|
|
57
|
-
.wait(Organisations.EXTRA_LONG_WAIT)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async edit (test, name, data) {
|
|
61
|
-
await this.clickAction(test, name, 'edit-organisation', Organisations.LONG_WAIT)
|
|
62
|
-
await test
|
|
63
|
-
.typeText(this.editorNameField, data.name, { replace: true })
|
|
64
|
-
.typeText(this.editoDescriptionField, data.description, { replace: true })
|
|
65
|
-
.click(Selector('.q-dialog #apply-button'))
|
|
66
|
-
.wait(Organisations.EXTRA_LONG_WAIT)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async delete (test, name) {
|
|
70
|
-
await this.clickAction(test, name, 'remove-organisation')
|
|
71
|
-
await test
|
|
72
|
-
.typeText(Selector('.q-dialog-plugin input[type=text]'), name)
|
|
73
|
-
.click(Selector('.q-dialog-plugin button').nth(1))
|
|
74
|
-
.wait(Organisations.EXTRA_LONG_WAIT)
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Selector } from 'testcafe'
|
|
2
|
-
import VueSelector from 'testcafe-vue-selectors'
|
|
3
|
-
import BasePage from './base-page'
|
|
4
|
-
|
|
5
|
-
export default class Screens extends BasePage {
|
|
6
|
-
constructor () {
|
|
7
|
-
super()
|
|
8
|
-
// Login Screen
|
|
9
|
-
this.loginScreen = VueSelector('k-login k-screen')
|
|
10
|
-
this.emailInput = VueSelector('k-login k-email-field')
|
|
11
|
-
this.passwordInput = VueSelector('k-login k-password-field')
|
|
12
|
-
this.loginLocalButton = Selector('#local')
|
|
13
|
-
this.loginGoogleButton = Selector('#google')
|
|
14
|
-
this.emailInputGoogle = Selector('input[type=email]')
|
|
15
|
-
this.nextEmailGoogle = Selector('#identifierNext')
|
|
16
|
-
this.passwordInputGoogle = Selector('input[type=password]')
|
|
17
|
-
this.signInGoogle = Selector('#passwordNext')
|
|
18
|
-
this.loginGitHubButton = Selector('#github')
|
|
19
|
-
this.emailInputGitHub = Selector('input[type=text]')
|
|
20
|
-
this.passwordInputGitHub = Selector('input[type=password]')
|
|
21
|
-
this.signInGitHub = Selector('input[type=submit]')
|
|
22
|
-
this.authorizeGitHub = Selector('button[type=submit]')
|
|
23
|
-
this.registerLink = Selector('#register-link')
|
|
24
|
-
// Logout screen
|
|
25
|
-
this.logoutScreen = VueSelector('k-logout k-screen')
|
|
26
|
-
// Register screen
|
|
27
|
-
this.registerScreen = VueSelector('k-register k-screen')
|
|
28
|
-
this.registerNameInput = VueSelector('k-register k-text-field')
|
|
29
|
-
this.registerEmailInput = VueSelector('k-register k-email-field')
|
|
30
|
-
this.registerPasswordInput = VueSelector('k-register k-password-field').nth(0)
|
|
31
|
-
this.registerConfirmPasswordInput = VueSelector('k-register k-password-field').nth(1)
|
|
32
|
-
this.registerAcceptTerms = VueSelector('k-register k-toggle-field').find('.q-toggle')
|
|
33
|
-
this.registerButton = Selector('button[type=button]').nth(0)
|
|
34
|
-
// Register/Logout screens
|
|
35
|
-
this.loginLink = Selector('#login-link')
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Login screen functions
|
|
39
|
-
async goToLoginScreen (test) {
|
|
40
|
-
await test.click(this.loginLink)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async login (test, credentials) {
|
|
44
|
-
await test
|
|
45
|
-
.typeText(this.emailInput, credentials.email, { replace: true })
|
|
46
|
-
.typeText(this.passwordInput, credentials.password, { replace: true })
|
|
47
|
-
.click(this.loginLocalButton)
|
|
48
|
-
// Need this so that we are sure dynamic components, user, etc. have been loaded
|
|
49
|
-
.wait(5000)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async loginGoogle (test) {
|
|
53
|
-
await test
|
|
54
|
-
.click(this.loginGoogleButton)
|
|
55
|
-
.typeText(this.emailInputGoogle, process.env.GOOGLE_USER, { replace: true })
|
|
56
|
-
.click(this.nextEmailGoogle)
|
|
57
|
-
// Need this so that we are sure google login page is loaded
|
|
58
|
-
.wait(2000)
|
|
59
|
-
.typeText(this.passwordInputGoogle, process.env.GOOGLE_PASSWORD, { replace: true })
|
|
60
|
-
.click(this.signInGoogle)
|
|
61
|
-
// Need this so that we are sure google page is loaded & dynamic components, user, etc. have been loaded
|
|
62
|
-
.wait(5000)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
async loginGitHub (test) {
|
|
66
|
-
await test
|
|
67
|
-
.click(this.loginGitHubButton)
|
|
68
|
-
.typeText(this.emailInputGitHub, process.env.GITHUB_USER, { replace: true })
|
|
69
|
-
.typeText(this.passwordInputGitHub, process.env.GITHUB_PASSWORD, { replace: true })
|
|
70
|
-
.click(this.signInGitHub)
|
|
71
|
-
// Need this so that we are sure github authorize page or user has been loaded
|
|
72
|
-
.wait(5000)
|
|
73
|
-
// Check if we need to authorize the app
|
|
74
|
-
const authorize = await this.authorizeGitHub()
|
|
75
|
-
if (authorize) {
|
|
76
|
-
await test
|
|
77
|
-
.click(this.authorizeGitHub)
|
|
78
|
-
// Need this so that we are sure dynamic components, user, etc. have been loaded
|
|
79
|
-
.wait(5000)
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
// Register screen functions
|
|
84
|
-
async goToRegisterScreen (test) {
|
|
85
|
-
await test.click(this.registerLink)
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
async register (test, identity) {
|
|
89
|
-
await test
|
|
90
|
-
.typeText(this.registerNameInput, identity.name, { replace: true })
|
|
91
|
-
.typeText(this.registerEmailInput, identity.email, { replace: true })
|
|
92
|
-
.typeText(this.registerPasswordInput, identity.password, { replace: true })
|
|
93
|
-
.typeText(this.registerConfirmPasswordInput, identity.password, { replace: true })
|
|
94
|
-
.click(this.registerAcceptTerms)
|
|
95
|
-
.click(this.registerButton)
|
|
96
|
-
// Need this so that we are sure dynamic components, user, etc. have been loaded
|
|
97
|
-
.wait(5000)
|
|
98
|
-
}
|
|
99
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Selector } from 'testcafe'
|
|
2
|
-
import VueSelector from 'testcafe-vue-selectors'
|
|
3
|
-
import BaseCollection from './base-collection'
|
|
4
|
-
|
|
5
|
-
export default class Tags extends BaseCollection {
|
|
6
|
-
constructor () {
|
|
7
|
-
super('tagsGrid', 'QCard')
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
async title (name) {
|
|
11
|
-
return this.tags.withText(name).find('.text-subtitle1').innerText
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
async edit (test, name, data) {
|
|
15
|
-
await this.clickAction(test, name, 'edit-tag')
|
|
16
|
-
await test
|
|
17
|
-
.typeText(VueSelector('k-text-field').nth(0), data.name, { replace: true })
|
|
18
|
-
.click(Selector('.q-dialog #apply-button'))
|
|
19
|
-
.wait(2000)
|
|
20
|
-
}
|
|
21
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Selector, t } from 'testcafe'
|
|
2
|
-
import BasePage from '../core/base-page'
|
|
3
|
-
|
|
4
|
-
export default class AddLayer extends BasePage {
|
|
5
|
-
constructor () {
|
|
6
|
-
super()
|
|
7
|
-
|
|
8
|
-
this.dialog = Selector('.q-dialog')
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async importLayer (file, featureId) {
|
|
12
|
-
await t
|
|
13
|
-
.click(this.dialog.find('#import-layer'))
|
|
14
|
-
.setFilesToUpload(this.dialog.find('#file-field'), file)
|
|
15
|
-
.click(this.dialog.find('#featureId-field'))
|
|
16
|
-
.wait(1000)
|
|
17
|
-
.click(Selector('.q-menu').find(`#${featureId}`))
|
|
18
|
-
.wait(1000)
|
|
19
|
-
.click(this.dialog.find('#import-layer-action'))
|
|
20
|
-
.wait(1000)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async connectLayer (service, layerId) {
|
|
24
|
-
await t
|
|
25
|
-
.click(this.dialog.find('#connect-layer'))
|
|
26
|
-
.typeText(this.dialog.find('#service-field'), service)
|
|
27
|
-
.pressKey('enter')
|
|
28
|
-
.wait(5000) // Need to wait for capabilities parsing
|
|
29
|
-
.click(this.dialog.find('#layer-field'))
|
|
30
|
-
.wait(500)
|
|
31
|
-
// Selection based on text content does not seem to work
|
|
32
|
-
.click(Selector('.q-menu').find(`#${layerId}`))
|
|
33
|
-
.wait(1000)
|
|
34
|
-
.click(this.dialog.find('#connect-layer-action'))
|
|
35
|
-
.wait(1000)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
async createLayer (layer, schema, featureId) {
|
|
39
|
-
await t
|
|
40
|
-
.click(this.dialog.find('#create-layer'))
|
|
41
|
-
.typeText(this.dialog.find('#name-field'), layer)
|
|
42
|
-
.typeText(this.dialog.find('#description-field'), `${layer} description`)
|
|
43
|
-
.setFilesToUpload(this.dialog.find('#schema-field'), schema)
|
|
44
|
-
.click(this.dialog.find('#featureId-field'))
|
|
45
|
-
.wait(1000)
|
|
46
|
-
.click(Selector('.q-menu').find(`#${featureId}`))
|
|
47
|
-
.wait(1000)
|
|
48
|
-
.click(this.dialog.find('#create-layer-action'))
|
|
49
|
-
.wait(1000)
|
|
50
|
-
}
|
|
51
|
-
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
import { Selector, t } from 'testcafe'
|
|
2
|
-
import VueSelector from 'testcafe-vue-selectors'
|
|
3
|
-
import BasePage from '../core/base-page'
|
|
4
|
-
|
|
5
|
-
export default class Catalog extends BasePage {
|
|
6
|
-
constructor () {
|
|
7
|
-
super()
|
|
8
|
-
this.catalog = VueSelector('k-catalog')
|
|
9
|
-
this.categories = VueSelector('k-catalog QExpansionItem')
|
|
10
|
-
this.layers = VueSelector('k-catalog QCard')
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
// Categories
|
|
14
|
-
async getCategoryElement (category) {
|
|
15
|
-
const categoryId = 'KCatalogPanel.' + category
|
|
16
|
-
const categoriesCount = await this.categories.count
|
|
17
|
-
let categoryEl = null
|
|
18
|
-
for (let i = 0; i < categoriesCount; ++i) {
|
|
19
|
-
if (!categoryEl) {
|
|
20
|
-
const cat = this.categories.nth(i)
|
|
21
|
-
const id = await cat.id
|
|
22
|
-
if (id === categoryId) categoryEl = cat
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
if (!categoryEl) throw new Error(`Catalog category '${category}' not found !`)
|
|
26
|
-
return categoryEl
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
async getCategory (category) {
|
|
30
|
-
const categoryEl = await this.getCategoryElement(category)
|
|
31
|
-
const categoryVue = await categoryEl.getVue()
|
|
32
|
-
return categoryVue
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
async clickCategory (test, category, state) {
|
|
36
|
-
const categoryEl = await this.getCategoryElement(category)
|
|
37
|
-
await test
|
|
38
|
-
.click(categoryEl.find('.q-item'))
|
|
39
|
-
const categoryVue = await categoryEl.getVue()
|
|
40
|
-
await test
|
|
41
|
-
.expect(categoryVue.state.showing).eql(state)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
async checkCategoryExpanded (test, category, state) {
|
|
45
|
-
const categoryVue = await this.getCategory(category)
|
|
46
|
-
await test
|
|
47
|
-
.expect(categoryVue.state.showing).eql(state)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
async manageCategories (test) {
|
|
51
|
-
await test
|
|
52
|
-
.click(VueSelector('k-catalog #manage-layer-categories'))
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// layers
|
|
56
|
-
async getLayerElement (layer) {
|
|
57
|
-
const layersCount = await this.layers.count
|
|
58
|
-
let layerEl = null
|
|
59
|
-
for (let i = 0; i < layersCount; ++i) {
|
|
60
|
-
if (!layerEl) {
|
|
61
|
-
const lay = this.layers.nth(i)
|
|
62
|
-
const id = await lay.id
|
|
63
|
-
if (id === layer) layerEl = lay
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (!layerEl) throw new Error(`Catalog layer '${layer}' not found !`)
|
|
67
|
-
return layerEl
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
async getLayer (layer) {
|
|
71
|
-
const layerEl = await this.getLayerElement(layer)
|
|
72
|
-
const layerVue = await layerEl.getVue()
|
|
73
|
-
return layerVue
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
async clickLayer (test, layer) {
|
|
77
|
-
const layerEl = await this.getLayerElement(layer)
|
|
78
|
-
await test
|
|
79
|
-
.click(layerEl)
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
async clickLayerAction (test, layer, action) {
|
|
83
|
-
const layerEl = await this.getLayerElement(layer)
|
|
84
|
-
await test
|
|
85
|
-
.click(layerEl.find('#layer-actions'))
|
|
86
|
-
.click(Selector('.q-menu').find(`#${action}`))
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
async checkLayerDisabled (test, layer, state) {
|
|
90
|
-
const layerVue = await this.getLayer(layer)
|
|
91
|
-
await test
|
|
92
|
-
.expect(layerVue.props.disable).eql(state)
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
async checkLayerActive (test, layer, state) {
|
|
96
|
-
const layerVue = await this.getLayer(layer)
|
|
97
|
-
await test
|
|
98
|
-
.expect(layerVue.props.active).eql(state)
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// Meteo models
|
|
102
|
-
async getMeteoModel (model) {
|
|
103
|
-
return Selector('.q-menu').find(`#${model}`)
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async clickForecastMode (test, mode) {
|
|
107
|
-
const item = await this.getForecastMode(mode)
|
|
108
|
-
await test
|
|
109
|
-
.click(item)
|
|
110
|
-
.expect(item.getVue(({ computed }) => computed.isActive)).ok(`forecast mode '${mode}' isn't active`)
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
async clickForecast () {
|
|
114
|
-
await this.clickForecastMode('forecast')
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
async clickArchives () {
|
|
118
|
-
await this.clickForecastMode('archive')
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
async selectMeteoModel (model) {
|
|
122
|
-
const select = VueSelector('k-catalog k-weather-layers-selector QSelect')
|
|
123
|
-
await t.click(select)
|
|
124
|
-
const entry = await this.getMeteoModel(model)
|
|
125
|
-
const label = await Selector(entry).child('.q-item__section--main').child(0).innerText
|
|
126
|
-
await t
|
|
127
|
-
.click(entry)
|
|
128
|
-
// robin: test may fail here, in that case, chrome was probably out of focus
|
|
129
|
-
// try again and let chrome window focused ...
|
|
130
|
-
.expect(select.getVue(({ computed }) => computed.selectedString)).eql(label, `meteo model '${model}' isn't selected`)
|
|
131
|
-
}
|
|
132
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { ClientFunction } from 'testcafe'
|
|
2
|
-
import Timeline from './timeline'
|
|
3
|
-
import MapActivity from './map-activity'
|
|
4
|
-
import Catalog from './catalog'
|
|
5
|
-
import AddLayer from './add-layer'
|
|
6
|
-
|
|
7
|
-
export { Timeline }
|
|
8
|
-
export { MapActivity }
|
|
9
|
-
export { Catalog }
|
|
10
|
-
export { AddLayer }
|
|
11
|
-
|
|
12
|
-
// Mock Geolocation API that does not work well in headless browsers
|
|
13
|
-
// See https://github.com/DevExpress/testcafe/issues/1991
|
|
14
|
-
export const mockLocationAPI = ClientFunction(() => {
|
|
15
|
-
navigator.geolocation.getCurrentPosition = (f) => f({
|
|
16
|
-
coords: {
|
|
17
|
-
latitude: 43.2996151,
|
|
18
|
-
longitude: 1.9287062
|
|
19
|
-
},
|
|
20
|
-
timestamp: Date.now()
|
|
21
|
-
})
|
|
22
|
-
})
|
|
23
|
-
|
|
24
|
-
export const getLayers = ClientFunction(() => {
|
|
25
|
-
const globalCatalogService = window.$api.getService('catalog', '')
|
|
26
|
-
const catalogService = window.$api.getService('catalog')
|
|
27
|
-
|
|
28
|
-
const p = []
|
|
29
|
-
|
|
30
|
-
// We get layers coming from global catalog first if any
|
|
31
|
-
if (globalCatalogService) p.push(globalCatalogService.find())
|
|
32
|
-
// Then we get layers coming from contextual catalog if any
|
|
33
|
-
if (catalogService && (catalogService !== globalCatalogService)) p.push(catalogService.find())
|
|
34
|
-
|
|
35
|
-
return Promise.all(p).then((responses) => responses.flatMap(r => r.data))
|
|
36
|
-
})
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Selector } from 'testcafe'
|
|
2
|
-
import BasePage from '../core/base-page'
|
|
3
|
-
import { getCurrentUrl, refresh } from '../core'
|
|
4
|
-
|
|
5
|
-
export default class MapActivity extends BasePage {
|
|
6
|
-
constructor () {
|
|
7
|
-
super()
|
|
8
|
-
this.map = Selector('#map')
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
async click (test) {
|
|
12
|
-
await test
|
|
13
|
-
.click(this.map)
|
|
14
|
-
.wait(500)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
async clickAt (test, x, y) {
|
|
18
|
-
await test
|
|
19
|
-
.click(this.map, { offsetX: x, offsetY: y })
|
|
20
|
-
.wait(500)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
async move (test, dx, dy) {
|
|
24
|
-
await test
|
|
25
|
-
.drag(this.map, dx, dy)
|
|
26
|
-
.click(this.map)
|
|
27
|
-
.wait(500)
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
async zoomTo (test, bbox) {
|
|
31
|
-
let url = await getCurrentUrl()
|
|
32
|
-
// Create URL parser
|
|
33
|
-
url = new URL(url)
|
|
34
|
-
// Remove current bbox from URL if any
|
|
35
|
-
url.hash = url.hash.replace(/[0-9]/g, '')
|
|
36
|
-
// Then push new one
|
|
37
|
-
url.hash += '/' + bbox.join('/')
|
|
38
|
-
await test.navigateTo(url.toString())
|
|
39
|
-
await refresh()
|
|
40
|
-
await test.wait(MapActivity.LONG_WAIT)
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Selector, t } from 'testcafe'
|
|
2
|
-
import VueSelector from 'testcafe-vue-selectors'
|
|
3
|
-
import BasePage from '../core/base-page'
|
|
4
|
-
|
|
5
|
-
export default class Timeline extends BasePage {
|
|
6
|
-
constructor () {
|
|
7
|
-
super()
|
|
8
|
-
|
|
9
|
-
this.opener = Selector('#opener-bottom')
|
|
10
|
-
this.timeline = VueSelector('k-timeline')
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
async open () {
|
|
14
|
-
const timeline = Selector(this.timeline, { visibilityCheck: true })
|
|
15
|
-
await t
|
|
16
|
-
.click(this.opener)
|
|
17
|
-
.wait(100)
|
|
18
|
-
.expect(timeline.exists).ok()
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
async close () {
|
|
22
|
-
await t
|
|
23
|
-
.click(this.opener)
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
async isVisible () {
|
|
27
|
-
const exists = await this.timeline.exists
|
|
28
|
-
if (!exists) return false
|
|
29
|
-
return this.timeline.visible
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
getDay (day) {
|
|
33
|
-
if (day === '+') return this.timeline.find('i.la-calendar-plus')
|
|
34
|
-
if (day === '-') return this.timeline.find('i.la-calendar-minus')
|
|
35
|
-
return this.timeline.find('.ellipsis').withExactText(day)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
getHour (hour) {
|
|
39
|
-
if (hour === '+') return this.timeline.find('i.la-angle-right')
|
|
40
|
-
if (hour === '-') return this.timeline.find('i.la-angle-left')
|
|
41
|
-
return this.timeline.find('.k-timeline-hour-frame').withExactText(hour)
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
getStep (step) {
|
|
45
|
-
if (step === '+') return this.timeline.find('i.la-step-forward')
|
|
46
|
-
if (step === '-') return this.timeline.find('i.la-step-backward')
|
|
47
|
-
return null
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
async clickDay (day) {
|
|
51
|
-
const button = this.getDay(day)
|
|
52
|
-
await t
|
|
53
|
-
.click(button)
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
async clickHour (hour) {
|
|
57
|
-
const button = this.getHour(hour)
|
|
58
|
-
await t
|
|
59
|
-
.click(button)
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
async clickStep (step) {
|
|
63
|
-
const button = this.getStep(step)
|
|
64
|
-
await t
|
|
65
|
-
.click(button)
|
|
66
|
-
}
|
|
67
|
-
}
|