@kalisio/kdk 1.3.5 → 1.4.2
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/2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json +1 -0
- package/.nyc_output/{0b8aa700-8daa-49ce-85e7-a8f8965d55f0.json → 2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json} +0 -0
- package/.nyc_output/{20df4355-911a-4b16-a8ab-d3392e9f0a7f.json → 81d21e46-766a-46bc-b1b7-143ca577347a.json} +0 -0
- package/.nyc_output/a762cb58-70dc-4d39-ab69-928635affa98.json +1 -0
- package/.nyc_output/{257af0bb-96c3-465a-b5ef-a1df60078d5f.json → aaf3ebbb-f895-4d7b-9255-bc5dee832570.json} +0 -0
- package/.nyc_output/{284aebfa-23fd-425f-9d72-e4b8904dc224.json → dbeb2602-0ac2-4e66-978b-0d29548359ca.json} +0 -0
- package/.nyc_output/{5cbee06e-be6e-468a-bd78-4793ee785fe4.json → e47d1e4c-2fff-4dcb-908f-d3081162547c.json} +0 -0
- package/.nyc_output/processinfo/{2bece194-92f7-4971-a688-10604044a7fa.json → 2c5b7c8e-81db-4d2c-a7a4-02dc640d301f.json} +1 -1
- package/.nyc_output/processinfo/2e74ca23-8cf0-4161-9536-f71c2a1a74bb.json +1 -0
- package/.nyc_output/processinfo/81d21e46-766a-46bc-b1b7-143ca577347a.json +1 -0
- package/.nyc_output/processinfo/a762cb58-70dc-4d39-ab69-928635affa98.json +1 -0
- package/.nyc_output/processinfo/aaf3ebbb-f895-4d7b-9255-bc5dee832570.json +1 -0
- package/.nyc_output/processinfo/dbeb2602-0ac2-4e66-978b-0d29548359ca.json +1 -0
- package/.nyc_output/processinfo/e47d1e4c-2fff-4dcb-908f-d3081162547c.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/CHANGELOG.md +189 -67
- package/README.md +1 -1
- package/coverage/core/api/application.js.html +145 -145
- package/coverage/core/api/authentication.js.html +37 -37
- package/coverage/core/api/db.js.html +74 -74
- package/coverage/core/api/hooks/hooks.account.js.html +15 -15
- package/coverage/core/api/hooks/hooks.authentication.js.html +16 -16
- package/coverage/core/api/hooks/hooks.authorisations.js.html +112 -121
- package/coverage/core/api/hooks/hooks.devices.js.html +5 -5
- package/coverage/core/api/hooks/hooks.groups.js.html +3 -3
- package/coverage/core/api/hooks/hooks.logger.js.html +7 -7
- package/coverage/core/api/hooks/hooks.model.js.html +149 -149
- package/coverage/core/api/hooks/hooks.organisations.js.html +13 -61
- package/coverage/core/api/hooks/hooks.pusher.js.html +7 -7
- package/coverage/core/api/hooks/hooks.query.js.html +68 -32
- package/coverage/core/api/hooks/hooks.service.js.html +15 -15
- package/coverage/core/api/hooks/hooks.storage.js.html +5 -5
- package/coverage/core/api/hooks/hooks.tags.js.html +7 -7
- package/coverage/core/api/hooks/hooks.users.js.html +111 -63
- package/coverage/core/api/hooks/index.html +72 -72
- package/coverage/core/api/hooks/index.js.html +15 -15
- package/coverage/core/api/index.html +35 -35
- package/coverage/core/api/index.js.html +13 -13
- package/coverage/core/api/marshall.js.html +81 -81
- package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/index.html +1 -1
- package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/core/api/models/users.model.mongodb.js.html +7 -7
- package/coverage/core/api/oauth2-handler.js.html +3 -3
- package/coverage/core/api/oauth2-verifier.js.html +5 -5
- package/coverage/core/api/services/account/account.hooks.js.html +1 -1
- package/coverage/core/api/services/account/account.service.js.html +34 -34
- package/coverage/core/api/services/account/index.html +17 -17
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +3 -3
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +40 -37
- package/coverage/core/api/services/authorisations/index.html +17 -17
- package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/core/api/services/databases/index.html +1 -1
- package/coverage/core/api/services/devices/devices.hooks.js.html +1 -1
- package/coverage/core/api/services/devices/devices.service.js.html +1 -1
- package/coverage/core/api/services/devices/index.html +1 -1
- package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/core/api/services/groups/index.html +1 -1
- package/coverage/core/api/services/index.html +5 -5
- package/coverage/core/api/services/index.js.html +40 -40
- package/coverage/core/api/services/mailer/index.html +1 -1
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/core/api/services/organisations/index.html +1 -1
- package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/core/api/services/pusher/index.html +1 -1
- package/coverage/core/api/services/pusher/pusher.channels.js.html +1 -1
- package/coverage/core/api/services/pusher/pusher.hooks.js.html +1 -1
- package/coverage/core/api/services/pusher/pusher.service.js.html +1 -1
- package/coverage/core/api/services/storage/index.html +1 -1
- package/coverage/core/api/services/storage/storage.hooks.js.html +4 -4
- package/coverage/core/api/services/tags/index.html +1 -1
- package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/core/api/services/users/index.html +1 -1
- package/coverage/core/api/services/users/users.hooks.js.html +12 -12
- package/coverage/core/common/index.html +32 -32
- package/coverage/core/common/index.js.html +27 -27
- package/coverage/core/common/permissions.js.html +135 -75
- package/coverage/index.html +157 -157
- package/coverage/lcov-report/core/api/application.js.html +145 -145
- package/coverage/lcov-report/core/api/authentication.js.html +37 -37
- package/coverage/lcov-report/core/api/db.js.html +74 -74
- package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +15 -15
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +16 -16
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +112 -121
- package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +5 -5
- package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +3 -3
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +149 -149
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +13 -61
- package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +68 -32
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +15 -15
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +5 -5
- package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +7 -7
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +111 -63
- package/coverage/lcov-report/core/api/hooks/index.html +72 -72
- package/coverage/lcov-report/core/api/hooks/index.js.html +15 -15
- package/coverage/lcov-report/core/api/index.html +35 -35
- package/coverage/lcov-report/core/api/index.js.html +13 -13
- package/coverage/lcov-report/core/api/marshall.js.html +81 -81
- package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/index.html +1 -1
- package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +7 -7
- package/coverage/lcov-report/core/api/oauth2-handler.js.html +3 -3
- package/coverage/lcov-report/core/api/oauth2-verifier.js.html +5 -5
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +34 -34
- package/coverage/lcov-report/core/api/services/account/index.html +17 -17
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +3 -3
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +40 -37
- package/coverage/lcov-report/core/api/services/authorisations/index.html +17 -17
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
- package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/devices/index.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
- package/coverage/lcov-report/core/api/services/index.html +5 -5
- package/coverage/lcov-report/core/api/services/index.js.html +40 -40
- package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/index.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +4 -4
- package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/users/index.html +1 -1
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +12 -12
- package/coverage/lcov-report/core/common/index.html +32 -32
- package/coverage/lcov-report/core/common/index.js.html +27 -27
- package/coverage/lcov-report/core/common/permissions.js.html +135 -75
- package/coverage/lcov-report/index.html +157 -157
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +55 -55
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +337 -274
- package/coverage/lcov-report/map/api/hooks/index.html +43 -43
- package/coverage/lcov-report/map/api/hooks/index.js.html +12 -12
- package/coverage/lcov-report/map/api/index.html +31 -31
- package/coverage/lcov-report/map/api/index.js.html +24 -24
- package/coverage/lcov-report/map/api/marshall.js.html +39 -39
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +20 -20
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +22 -22
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +24 -24
- package/coverage/lcov-report/map/api/models/index.html +43 -43
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +21 -21
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +156 -156
- package/coverage/lcov-report/map/api/services/alerts/index.html +30 -30
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +19 -19
- package/coverage/lcov-report/map/api/services/catalog/index.html +17 -17
- 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 +20 -20
- package/coverage/lcov-report/map/api/services/features/index.html +21 -21
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +8 -8
- package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +99 -99
- package/coverage/lcov-report/map/api/services/geocoder/index.html +28 -28
- package/coverage/lcov-report/map/api/services/index.html +21 -21
- package/coverage/lcov-report/map/api/services/index.js.html +71 -71
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/lcov-report/map/common/errors.js.html +9 -9
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +120 -120
- package/coverage/lcov-report/map/common/grid.js.html +268 -268
- package/coverage/lcov-report/map/common/index.html +149 -149
- package/coverage/lcov-report/map/common/index.js.html +31 -31
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +71 -71
- package/coverage/lcov-report/map/common/moment-utils.js.html +14 -14
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +280 -280
- package/coverage/lcov-report/map/common/opendap-utils.js.html +220 -220
- package/coverage/lcov-report/map/common/permissions.js.html +21 -21
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +51 -51
- package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +99 -99
- package/coverage/lcov-report/map/common/wcs-utils.js.html +66 -66
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +196 -196
- package/coverage/lcov-report/map/common/wfs-utils.js.html +8 -5
- package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/wmts-utils.js.html +71 -11
- package/coverage/lcov.info +3588 -3659
- package/coverage/map/api/hooks/hooks.catalog.js.html +55 -55
- package/coverage/map/api/hooks/hooks.query.js.html +337 -274
- package/coverage/map/api/hooks/index.html +43 -43
- package/coverage/map/api/hooks/index.js.html +12 -12
- package/coverage/map/api/index.html +31 -31
- package/coverage/map/api/index.js.html +24 -24
- package/coverage/map/api/marshall.js.html +39 -39
- package/coverage/map/api/models/alerts.model.mongodb.js.html +20 -20
- package/coverage/map/api/models/catalog.model.mongodb.js.html +22 -22
- package/coverage/map/api/models/features.model.mongodb.js.html +24 -24
- package/coverage/map/api/models/index.html +43 -43
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +21 -21
- package/coverage/map/api/services/alerts/alerts.service.js.html +156 -156
- package/coverage/map/api/services/alerts/index.html +30 -30
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +19 -19
- package/coverage/map/api/services/catalog/index.html +17 -17
- 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 +20 -20
- package/coverage/map/api/services/features/index.html +21 -21
- package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +8 -8
- package/coverage/map/api/services/geocoder/geocoder.service.js.html +99 -99
- package/coverage/map/api/services/geocoder/index.html +28 -28
- package/coverage/map/api/services/index.html +21 -21
- package/coverage/map/api/services/index.js.html +71 -71
- package/coverage/map/common/dynamic-grid-source.js.html +68 -68
- package/coverage/map/common/errors.js.html +9 -9
- package/coverage/map/common/geotiff-grid-source.js.html +120 -120
- package/coverage/map/common/grid.js.html +268 -268
- package/coverage/map/common/index.html +149 -149
- package/coverage/map/common/index.js.html +31 -31
- package/coverage/map/common/meteo-model-grid-source.js.html +71 -71
- package/coverage/map/common/moment-utils.js.html +14 -14
- package/coverage/map/common/opendap-grid-source.js.html +280 -280
- package/coverage/map/common/opendap-utils.js.html +220 -220
- package/coverage/map/common/permissions.js.html +21 -21
- package/coverage/map/common/time-based-grid-source.js.html +51 -51
- package/coverage/map/common/tms-utils.js.html +1 -1
- package/coverage/map/common/wcs-grid-source.js.html +99 -99
- package/coverage/map/common/wcs-utils.js.html +66 -66
- package/coverage/map/common/weacast-grid-source.js.html +196 -196
- package/coverage/map/common/wfs-utils.js.html +8 -5
- package/coverage/map/common/wms-utils.js.html +1 -1
- package/coverage/map/common/wmts-utils.js.html +71 -11
- package/extras/icons/kanban.png +0 -0
- package/extras/testcafe/page-models/map/catalog.js +2 -2
- package/extras/tours/core/add-member.js +10 -1
- package/extras/tours/core/{tag-member.js → edit-member-tags.js} +4 -3
- package/extras/tours/core/groups.js +8 -2
- package/extras/tours/core/members.js +11 -21
- package/extras/tours/core/tags.js +7 -1
- package/extras/tours/map/catalog-categories.js +4 -4
- package/extras/tours/map/catalog-panel.js +16 -16
- package/extras/tours/map/favorite-views.js +3 -3
- package/lib/core/api/hooks/hooks.authorisations.js +149 -140
- package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
- package/lib/core/api/hooks/hooks.organisations.js +1 -23
- package/lib/core/api/hooks/hooks.organisations.js.map +1 -1
- package/lib/core/api/hooks/hooks.query.js +22 -0
- package/lib/core/api/hooks/hooks.query.js.map +1 -1
- package/lib/core/api/hooks/hooks.users.js +34 -18
- package/lib/core/api/hooks/hooks.users.js.map +1 -1
- package/lib/core/api/services/authorisations/authorisations.service.js +34 -25
- package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
- package/lib/core/client/api.js +1 -0
- package/lib/core/client/api.js.map +1 -1
- package/lib/core/client/components/account/KAccountDZ.vue +3 -4
- package/lib/core/client/components/account/KAccountDevices.vue +5 -6
- package/lib/core/client/components/account/KDeviceCard.vue +2 -1
- package/lib/core/client/components/account/KIdentityPanel.vue +1 -7
- package/lib/core/client/components/collection/KBoard.vue +26 -155
- package/lib/core/client/components/collection/KCard.vue +144 -42
- package/lib/core/client/components/collection/KCardSection.vue +52 -0
- package/lib/core/client/components/collection/KColumn.vue +181 -0
- package/lib/core/client/components/collection/KGrid.vue +13 -18
- package/lib/core/client/components/collection/KHistory.vue +61 -89
- package/lib/core/client/components/collection/KHistoryEntry.vue +90 -66
- package/lib/core/client/components/collection/KItem.vue +21 -2
- package/lib/core/client/components/collection/KList.vue +9 -12
- package/lib/core/client/components/collection/KTable.vue +33 -39
- package/lib/core/client/components/collection/index.js +6 -1
- package/lib/core/client/components/collection/index.js.map +1 -1
- package/lib/core/client/components/editor/KEditor.vue +0 -6
- package/lib/core/client/components/editor/KModalEditor.vue +4 -4
- package/lib/core/client/components/editor/KSettingsEditor.vue +49 -0
- package/lib/core/client/components/form/KAttachmentField.vue +10 -10
- package/lib/core/client/components/form/KChipsField.vue +28 -23
- package/lib/core/client/components/form/KColorField.vue +30 -25
- package/lib/core/client/components/form/KForm.vue +0 -12
- package/lib/core/client/components/form/KIconField.vue +1 -0
- package/lib/core/client/components/form/KItemField.vue +8 -4
- package/lib/core/client/components/form/KRoleField.vue +56 -0
- package/lib/core/client/components/form/KSelectField.vue +16 -1
- package/lib/core/client/components/form/KView.vue +5 -14
- package/lib/core/client/components/frame/KAction.vue +18 -12
- package/lib/core/client/components/frame/KAvatar.vue +3 -3
- package/lib/core/client/components/frame/KChart.vue +60 -0
- package/lib/core/client/components/frame/KChipsPane.vue +80 -0
- package/lib/core/client/components/frame/KContent.vue +1 -1
- package/lib/core/client/components/frame/KModal.vue +30 -44
- package/lib/core/client/components/frame/KPanel.vue +1 -1
- package/lib/core/client/components/frame/{KMenu.vue → KPopupAction.vue} +6 -7
- package/lib/core/client/components/frame/KSpot.vue +31 -0
- package/lib/core/client/components/frame/KStamp.vue +62 -0
- package/lib/core/client/components/frame/index.js +56 -1
- package/lib/core/client/components/frame/index.js.map +1 -1
- package/lib/core/client/components/input/KColorChooser.vue +16 -8
- package/lib/core/client/components/input/KIconChooser.vue +2 -1
- package/lib/core/client/components/input/KUploader.vue +14 -5
- package/lib/core/client/components/layout/KAbout.vue +9 -3
- package/lib/core/client/components/layout/KFab.vue +1 -1
- package/lib/core/client/components/layout/KPage.vue +44 -19
- package/lib/core/client/components/layout/KTour.vue +2 -2
- package/lib/core/client/components/layout/KWelcome.vue +13 -12
- package/lib/core/client/components/layout/KWindow.vue +1 -1
- package/lib/core/client/components/media/KImageViewer.vue +9 -7
- package/lib/core/client/components/media/KMediaBrowser.vue +12 -8
- package/lib/core/client/components/menu/KMenu.vue +103 -0
- package/lib/core/client/components/team/KAddMember.vue +17 -9
- package/lib/core/client/components/team/KChangeRole.vue +5 -7
- package/lib/core/client/components/team/KGroupCard.vue +34 -51
- package/lib/core/client/components/team/KGroupsActivity.vue +9 -2
- package/lib/core/client/components/team/KJoinGroup.vue +5 -7
- package/lib/core/client/components/team/KMemberCard.vue +104 -63
- package/lib/core/client/components/team/KMembersActivity.vue +9 -2
- package/lib/core/client/components/team/KOrganisationsActivity.vue +8 -1
- package/lib/core/client/components/team/KTagCard.vue +26 -26
- package/lib/core/client/components/team/KTagsActivity.vue +9 -2
- package/lib/core/client/components/time/KTimeRange.vue +144 -0
- package/lib/core/client/components/viewer/KModalViewer.vue +6 -0
- package/lib/core/client/components/viewer/KViewer.vue +0 -6
- package/lib/core/client/i18n/core_en.json +133 -93
- package/lib/core/client/i18n/core_fr.json +56 -16
- package/lib/core/client/index.js +28 -14
- package/lib/core/client/index.js.map +1 -1
- package/lib/core/client/mixins/mixin.authorisation.js +28 -18
- package/lib/core/client/mixins/mixin.authorisation.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-collection.js +57 -9
- package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-context.js +1 -1
- package/lib/core/client/mixins/mixin.base-context.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-editor.js +26 -16
- package/lib/core/client/mixins/mixin.base-editor.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-field.js +0 -4
- package/lib/core/client/mixins/mixin.base-field.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-item.js +29 -14
- package/lib/core/client/mixins/mixin.base-item.js.map +1 -1
- package/lib/core/client/mixins/mixin.base-viewer.js +0 -2
- package/lib/core/client/mixins/mixin.base-viewer.js.map +1 -1
- package/lib/core/client/mixins/mixin.object-proxy.js +17 -3
- package/lib/core/client/mixins/mixin.object-proxy.js.map +1 -1
- package/lib/core/client/mixins/mixin.schema-proxy.js +31 -0
- package/lib/core/client/mixins/mixin.schema-proxy.js.map +1 -1
- package/lib/core/client/mixins/mixin.service.js +5 -33
- package/lib/core/client/mixins/mixin.service.js.map +1 -1
- package/lib/core/client/services/index.js +23 -0
- package/lib/core/client/services/index.js.map +1 -1
- package/lib/core/client/services/local-settings.service.js +4 -0
- package/lib/core/client/services/local-settings.service.js.map +1 -1
- package/lib/core/client/time.js +131 -0
- package/lib/core/client/time.js.map +1 -0
- package/lib/core/common/permissions.js +65 -23
- package/lib/core/common/permissions.js.map +1 -1
- package/lib/core/common/schemas/groups.create.json +1 -1
- package/lib/core/common/schemas/groups.update.json +1 -1
- package/lib/core/common/schemas/organisations.create.json +1 -1
- package/lib/core/common/schemas/organisations.update.json +2 -2
- package/lib/core/common/schemas/settings.update.json +139 -0
- package/lib/core/common/schemas/tags.update.json +9 -1
- package/lib/map/api/hooks/hooks.query.js +48 -27
- package/lib/map/api/hooks/hooks.query.js.map +1 -1
- package/lib/map/api/services/features/features.hooks.js +1 -1
- package/lib/map/api/services/features/features.hooks.js.map +1 -1
- package/lib/map/client/components/KColorLegend.vue +25 -23
- package/lib/map/client/components/KFavoriteViews.vue +71 -35
- package/lib/map/client/components/KFeaturesChart.vue +11 -9
- package/lib/map/client/components/KFeaturesFilter.vue +15 -7
- package/lib/map/client/components/KFeaturesTable.vue +27 -2
- package/lib/map/client/components/KLayerEditionToolbar.vue +43 -0
- package/lib/map/client/components/KLayerStyleEditor.vue +10 -4
- package/lib/map/client/components/KLayerStyleForm.vue +14 -11
- package/lib/map/client/components/KLocationInput.vue +126 -65
- package/lib/map/client/components/KLocationMap.vue +199 -84
- package/lib/map/client/components/KPositionIndicator.vue +1 -0
- package/lib/map/client/components/KTimeline.vue +41 -36
- package/lib/map/client/components/KUrlLegend.vue +21 -19
- package/lib/map/client/components/catalog/KBaseLayersSelector.vue +105 -0
- package/lib/map/client/components/catalog/KCatalog.vue +14 -2
- package/lib/map/client/components/catalog/KConnectLayer.vue +31 -11
- package/lib/map/client/components/catalog/KCreateLayer.vue +37 -14
- package/lib/map/client/components/catalog/KImportLayer.vue +28 -8
- package/lib/map/client/components/catalog/KLayerCategories.vue +86 -62
- package/lib/map/client/components/catalog/KLayersSelector.vue +42 -42
- package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +3 -3
- package/lib/map/client/components/form/KLocationField.vue +1 -1
- package/lib/map/client/components/form/KOwsLayerField.vue +21 -2
- package/lib/map/client/components/form/KOwsServiceField.vue +1 -0
- package/lib/map/client/components/widget/KInformationBox.vue +10 -16
- package/lib/map/client/components/widget/KMapillaryViewer.vue +59 -49
- package/lib/map/client/components/widget/KTimeSeries.vue +39 -29
- package/lib/map/client/i18n/map_en.json +65 -17
- package/lib/map/client/i18n/map_fr.json +67 -20
- package/lib/map/client/init.js +18 -6
- package/lib/map/client/init.js.map +1 -1
- package/lib/map/client/leaflet/GSMaPLayer.js +4 -9
- package/lib/map/client/leaflet/GSMaPLayer.js.map +1 -1
- package/lib/map/client/leaflet/GradientPath.js.map +1 -1
- package/lib/map/client/leaflet/MaskLayer.js +64 -0
- package/lib/map/client/leaflet/MaskLayer.js.map +1 -0
- package/lib/map/client/mixins/globe/mixin.base-globe.js +4 -1
- package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js +7 -9
- package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/index.js +8 -13
- package/lib/map/client/mixins/index.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.base-map.js +30 -6
- package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.canvas-layers.js +274 -51
- package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.edit-layers.js +218 -121
- package/lib/map/client/mixins/map/mixin.edit-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.file-layers.js +25 -18
- package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.geojson-layers.js +18 -10
- package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.georaster-layers.js +7 -4
- package/lib/map/client/mixins/map/mixin.georaster-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.gsmap-layers.js +3 -3
- package/lib/map/client/mixins/map/mixin.gsmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js +8 -10
- package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.mapillary-layers.js +25 -40
- package/lib/map/client/mixins/map/mixin.mapillary-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js +5 -3
- package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js.map +1 -1
- package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js +5 -3
- package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js.map +1 -1
- package/lib/map/client/mixins/mixin.activity.js +60 -68
- package/lib/map/client/mixins/mixin.activity.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-selection.js +8 -10
- package/lib/map/client/mixins/mixin.feature-selection.js.map +1 -1
- package/lib/map/client/mixins/mixin.feature-service.js +7 -5
- package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
- package/lib/map/client/mixins/mixin.weacast.js +6 -4
- package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
- package/lib/map/client/pixi-utils.js +9 -0
- package/lib/map/client/pixi-utils.js.map +1 -1
- package/lib/map/client/utils.js +50 -0
- package/lib/map/client/utils.js.map +1 -1
- package/lib/map/common/wfs-utils.js +1 -1
- package/lib/map/common/wfs-utils.js.map +1 -1
- package/lib/map/common/wmts-utils.js +31 -7
- package/lib/map/common/wmts-utils.js.map +1 -1
- package/lib/test/client/core/account.js +100 -0
- package/lib/test/client/core/account.js.map +1 -0
- package/lib/test/client/core/api.js +400 -0
- package/lib/test/client/core/api.js.map +1 -0
- package/lib/test/client/core/collection.js +109 -0
- package/lib/test/client/core/collection.js.map +1 -0
- package/lib/test/client/core/index.js +90 -0
- package/lib/test/client/core/index.js.map +1 -0
- package/lib/test/client/core/layout.js +221 -0
- package/lib/test/client/core/layout.js.map +1 -0
- package/lib/test/client/core/runner.js +204 -0
- package/lib/test/client/core/runner.js.map +1 -0
- package/lib/test/client/core/screens.js +68 -0
- package/lib/test/client/core/screens.js.map +1 -0
- package/lib/test/client/core/utils.js +304 -0
- package/lib/test/client/core/utils.js.map +1 -0
- package/lib/test/client/index.js +20 -0
- package/lib/test/client/index.js.map +1 -0
- package/lib/test/client/map/catalog.js +191 -0
- package/lib/test/client/map/catalog.js.map +1 -0
- package/lib/test/client/map/controls.js +54 -0
- package/lib/test/client/map/controls.js.map +1 -0
- package/lib/test/client/map/index.js +30 -0
- package/lib/test/client/map/index.js.map +1 -0
- package/package.json +17 -9
- package/test.client.js +1 -0
- package/tests/core/test-log-2021-07-15.log +71 -0
- package/tests/core/test-log-2021-09-02.log +47 -0
- package/tests/map/test-log-%DATE%.logYYYY-07-DD +12 -0
- package/tests/map/test-log-%DATE%.logYYYY-09-DD +6 -0
- package/tests/map/test-log-2021-07-12.log +12 -0
- package/tests/map/test-log-2021-07-15.log +5 -0
- package/tests/map/test-log-2021-09-02.log +3 -0
- package/.nyc_output/11cd93d8-69cb-405c-98a3-d249ea35b6da.json +0 -1
- package/.nyc_output/2bece194-92f7-4971-a688-10604044a7fa.json +0 -1
- package/.nyc_output/5ddee33e-b658-4c8e-a247-54f575ac67e8.json +0 -1
- package/.nyc_output/78760ae4-555f-4d9c-a6a1-acf5e2f0fe45.json +0 -1
- package/.nyc_output/d0bb2559-084e-4c92-b9e6-29a9abd41f7c.json +0 -1
- package/.nyc_output/processinfo/0b8aa700-8daa-49ce-85e7-a8f8965d55f0.json +0 -1
- package/.nyc_output/processinfo/11cd93d8-69cb-405c-98a3-d249ea35b6da.json +0 -1
- package/.nyc_output/processinfo/20df4355-911a-4b16-a8ab-d3392e9f0a7f.json +0 -1
- package/.nyc_output/processinfo/257af0bb-96c3-465a-b5ef-a1df60078d5f.json +0 -1
- package/.nyc_output/processinfo/284aebfa-23fd-425f-9d72-e4b8904dc224.json +0 -1
- package/.nyc_output/processinfo/5cbee06e-be6e-468a-bd78-4793ee785fe4.json +0 -1
- package/.nyc_output/processinfo/5ddee33e-b658-4c8e-a247-54f575ac67e8.json +0 -1
- package/.nyc_output/processinfo/78760ae4-555f-4d9c-a6a1-acf5e2f0fe45.json +0 -1
- package/.nyc_output/processinfo/d0bb2559-084e-4c92-b9e6-29a9abd41f7c.json +0 -1
- package/lib/core/client/components/frame/KLabel.vue +0 -56
- package/lib/core/client/components/team/KTagsPane.vue +0 -35
- package/lib/map/client/leaflet/TiledMapillaryLayer.js +0 -137
- package/lib/map/client/leaflet/TiledMapillaryLayer.js.map +0 -1
- package/lib/map/client/mixins/mixin.time.js +0 -73
- package/lib/map/client/mixins/mixin.time.js.map +0 -1
- package/tests/core/account.test.js +0 -415
- package/tests/core/client.test.js.skip +0 -37
- package/tests/core/config/default.js +0 -97
- package/tests/core/config/email-templates/confirmInvitation/html.ejs +0 -18
- package/tests/core/config/email-templates/identityChange/html.ejs +0 -12
- package/tests/core/config/email-templates/newDevice/html.ejs +0 -7
- package/tests/core/config/email-templates/passwordChange/html.ejs +0 -5
- package/tests/core/config/email-templates/resendVerifySignup/html.ejs +0 -10
- package/tests/core/config/email-templates/resetPwd/html.ejs +0 -5
- package/tests/core/config/email-templates/sendResetPwd/html.ejs +0 -8
- package/tests/core/config/email-templates/verifySignup/html.ejs +0 -3
- package/tests/core/data/10k_most_common_passwords.txt +0 -10000
- package/tests/core/data/logo.png +0 -0
- package/tests/core/hooks.test.js +0 -175
- package/tests/core/index.test.js +0 -418
- package/tests/core/notifications.test.js +0 -465
- package/tests/core/storage.test.js +0 -134
- package/tests/core/team.test.js +0 -610
- package/tests/core/utils.js +0 -59
- package/tests/map/alerts.test.js +0 -554
- package/tests/map/config/default.js +0 -112
- package/tests/map/config/layers.json +0 -37
- package/tests/map/daptiles.test.js +0 -41
- package/tests/map/data/DescribeCoverage.xml +0 -55
- package/tests/map/data/GetCoverage.tif +0 -0
- package/tests/map/data/adsb.observations.json +0 -132
- package/tests/map/data/dataset.grb.das +0 -55
- package/tests/map/data/dataset.grb.dds +0 -17
- package/tests/map/data/dataset.grb.dods +0 -0
- package/tests/map/data/lat_lon_bounds.grb.dods +0 -0
- package/tests/map/data/subdataset.grb.dods +0 -0
- package/tests/map/data/vigicrues.observations.json +0 -47042
- package/tests/map/data/vigicrues.stations.json +0 -15422
- package/tests/map/data/zones.json +0 -1228
- package/tests/map/grid-sources.test.js +0 -304
- package/tests/map/hooks.test.js +0 -96
- package/tests/map/index.test.js +0 -333
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.logout = exports.isToastVisible = exports.closeWelcomeDialog = exports.clickFab = exports.clickLeftPaneAction = exports.clickBottomPaneAction = exports.clickRightPaneAction = exports.clickTopPaneAction = exports.clickAction = exports.isLeftPaneVisible = exports.isBottomPaneVisible = exports.isRightPaneVisible = exports.isTopPaneVisible = exports.clickLeftOpener = exports.clickBottomOpener = exports.clickRightOpener = exports.clickTopOpener = undefined;
|
|
7
|
+
|
|
8
|
+
let clickOpener = (() => {
|
|
9
|
+
var _ref = _asyncToGenerator(function* (page, opener) {
|
|
10
|
+
const selector = `#${opener}-opener`;
|
|
11
|
+
yield page.evaluate(function (selector) {
|
|
12
|
+
return document.querySelector(selector).click();
|
|
13
|
+
}, selector);
|
|
14
|
+
yield page.waitForTimeout(500);
|
|
15
|
+
debug(`Clicked opener ${selector}`);
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return function clickOpener(_x, _x2) {
|
|
19
|
+
return _ref.apply(this, arguments);
|
|
20
|
+
};
|
|
21
|
+
})();
|
|
22
|
+
|
|
23
|
+
let clickTopOpener = exports.clickTopOpener = (() => {
|
|
24
|
+
var _ref2 = _asyncToGenerator(function* (page) {
|
|
25
|
+
yield clickOpener(page, 'top');
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
return function clickTopOpener(_x3) {
|
|
29
|
+
return _ref2.apply(this, arguments);
|
|
30
|
+
};
|
|
31
|
+
})();
|
|
32
|
+
|
|
33
|
+
let clickRightOpener = exports.clickRightOpener = (() => {
|
|
34
|
+
var _ref3 = _asyncToGenerator(function* (page) {
|
|
35
|
+
yield clickOpener(page, 'right');
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
return function clickRightOpener(_x4) {
|
|
39
|
+
return _ref3.apply(this, arguments);
|
|
40
|
+
};
|
|
41
|
+
})();
|
|
42
|
+
|
|
43
|
+
let clickBottomOpener = exports.clickBottomOpener = (() => {
|
|
44
|
+
var _ref4 = _asyncToGenerator(function* (page) {
|
|
45
|
+
yield clickOpener(page, 'bottom');
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
return function clickBottomOpener(_x5) {
|
|
49
|
+
return _ref4.apply(this, arguments);
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
|
|
53
|
+
let clickLeftOpener = exports.clickLeftOpener = (() => {
|
|
54
|
+
var _ref5 = _asyncToGenerator(function* (page) {
|
|
55
|
+
yield clickOpener(page, 'left');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
return function clickLeftOpener(_x6) {
|
|
59
|
+
return _ref5.apply(this, arguments);
|
|
60
|
+
};
|
|
61
|
+
})();
|
|
62
|
+
|
|
63
|
+
let isTopPaneVisible = exports.isTopPaneVisible = (() => {
|
|
64
|
+
var _ref6 = _asyncToGenerator(function* (page) {
|
|
65
|
+
return (0, _utils.isElementVisible)(page, '#top-panel');
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
return function isTopPaneVisible(_x7) {
|
|
69
|
+
return _ref6.apply(this, arguments);
|
|
70
|
+
};
|
|
71
|
+
})();
|
|
72
|
+
|
|
73
|
+
let isRightPaneVisible = exports.isRightPaneVisible = (() => {
|
|
74
|
+
var _ref7 = _asyncToGenerator(function* (page) {
|
|
75
|
+
return (0, _utils.isElementVisible)(page, '#right-panel');
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
return function isRightPaneVisible(_x8) {
|
|
79
|
+
return _ref7.apply(this, arguments);
|
|
80
|
+
};
|
|
81
|
+
})();
|
|
82
|
+
|
|
83
|
+
let isBottomPaneVisible = exports.isBottomPaneVisible = (() => {
|
|
84
|
+
var _ref8 = _asyncToGenerator(function* (page) {
|
|
85
|
+
return (0, _utils.isElementVisible)(page, '#bottom-panel');
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
return function isBottomPaneVisible(_x9) {
|
|
89
|
+
return _ref8.apply(this, arguments);
|
|
90
|
+
};
|
|
91
|
+
})();
|
|
92
|
+
|
|
93
|
+
let isLeftPaneVisible = exports.isLeftPaneVisible = (() => {
|
|
94
|
+
var _ref9 = _asyncToGenerator(function* (page) {
|
|
95
|
+
return (0, _utils.isElementVisible)(page, '#left-panel');
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
return function isLeftPaneVisible(_x10) {
|
|
99
|
+
return _ref9.apply(this, arguments);
|
|
100
|
+
};
|
|
101
|
+
})();
|
|
102
|
+
|
|
103
|
+
let clickAction = exports.clickAction = (() => {
|
|
104
|
+
var _ref10 = _asyncToGenerator(function* (page, action, wait = 250) {
|
|
105
|
+
const selector = `#${action}`;
|
|
106
|
+
yield (0, _utils.click)(page, selector, wait);
|
|
107
|
+
debug(`Clicked action ${selector}`);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
return function clickAction(_x11, _x12) {
|
|
111
|
+
return _ref10.apply(this, arguments);
|
|
112
|
+
};
|
|
113
|
+
})();
|
|
114
|
+
|
|
115
|
+
let clickPaneAction = (() => {
|
|
116
|
+
var _ref11 = _asyncToGenerator(function* (page, pane, action, wait) {
|
|
117
|
+
const isPaneVisible = yield (0, _utils.isElementVisible)(page, `#${pane}-panel`);
|
|
118
|
+
if (!isPaneVisible) yield clickOpener(page, pane);
|
|
119
|
+
yield clickAction(page, action, wait);
|
|
120
|
+
if (!isPaneVisible) yield clickOpener(page, pane);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
return function clickPaneAction(_x13, _x14, _x15, _x16) {
|
|
124
|
+
return _ref11.apply(this, arguments);
|
|
125
|
+
};
|
|
126
|
+
})();
|
|
127
|
+
|
|
128
|
+
let clickTopPaneAction = exports.clickTopPaneAction = (() => {
|
|
129
|
+
var _ref12 = _asyncToGenerator(function* (page, action, wait = 250) {
|
|
130
|
+
yield clickPaneAction(page, 'top', action, wait);
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
return function clickTopPaneAction(_x17, _x18) {
|
|
134
|
+
return _ref12.apply(this, arguments);
|
|
135
|
+
};
|
|
136
|
+
})();
|
|
137
|
+
|
|
138
|
+
let clickRightPaneAction = exports.clickRightPaneAction = (() => {
|
|
139
|
+
var _ref13 = _asyncToGenerator(function* (page, action, wait = 250) {
|
|
140
|
+
yield clickPaneAction(page, 'right', action, wait);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
return function clickRightPaneAction(_x19, _x20) {
|
|
144
|
+
return _ref13.apply(this, arguments);
|
|
145
|
+
};
|
|
146
|
+
})();
|
|
147
|
+
|
|
148
|
+
let clickBottomPaneAction = exports.clickBottomPaneAction = (() => {
|
|
149
|
+
var _ref14 = _asyncToGenerator(function* (page, action, wait = 250) {
|
|
150
|
+
yield clickPaneAction(page, 'bottom', action, wait);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
return function clickBottomPaneAction(_x21, _x22) {
|
|
154
|
+
return _ref14.apply(this, arguments);
|
|
155
|
+
};
|
|
156
|
+
})();
|
|
157
|
+
|
|
158
|
+
let clickLeftPaneAction = exports.clickLeftPaneAction = (() => {
|
|
159
|
+
var _ref15 = _asyncToGenerator(function* (page, action, wait = 250) {
|
|
160
|
+
const isPaneVisible = yield isLeftPaneVisible(page);
|
|
161
|
+
if (!isPaneVisible) yield clickLeftOpener(page);
|
|
162
|
+
yield clickAction(page, action, wait);
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
return function clickLeftPaneAction(_x23, _x24) {
|
|
166
|
+
return _ref15.apply(this, arguments);
|
|
167
|
+
};
|
|
168
|
+
})();
|
|
169
|
+
|
|
170
|
+
let clickFab = exports.clickFab = (() => {
|
|
171
|
+
var _ref16 = _asyncToGenerator(function* (page) {
|
|
172
|
+
return clickAction(page, 'fab');
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
return function clickFab(_x25) {
|
|
176
|
+
return _ref16.apply(this, arguments);
|
|
177
|
+
};
|
|
178
|
+
})();
|
|
179
|
+
|
|
180
|
+
let closeWelcomeDialog = exports.closeWelcomeDialog = (() => {
|
|
181
|
+
var _ref17 = _asyncToGenerator(function* (page) {
|
|
182
|
+
yield (0, _utils.click)(page, '.q-dialog #close-button');
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
return function closeWelcomeDialog(_x26) {
|
|
186
|
+
return _ref17.apply(this, arguments);
|
|
187
|
+
};
|
|
188
|
+
})();
|
|
189
|
+
|
|
190
|
+
let isToastVisible = exports.isToastVisible = (() => {
|
|
191
|
+
var _ref18 = _asyncToGenerator(function* (page) {
|
|
192
|
+
return (0, _utils.isElementVisible)(page, '[role="alert"]');
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
return function isToastVisible(_x27) {
|
|
196
|
+
return _ref18.apply(this, arguments);
|
|
197
|
+
};
|
|
198
|
+
})();
|
|
199
|
+
|
|
200
|
+
let logout = exports.logout = (() => {
|
|
201
|
+
var _ref19 = _asyncToGenerator(function* (page) {
|
|
202
|
+
yield clickLeftPaneAction(page, 'logout', 1000);
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
return function logout(_x28) {
|
|
206
|
+
return _ref19.apply(this, arguments);
|
|
207
|
+
};
|
|
208
|
+
})();
|
|
209
|
+
|
|
210
|
+
var _debug = require('debug');
|
|
211
|
+
|
|
212
|
+
var _debug2 = _interopRequireDefault(_debug);
|
|
213
|
+
|
|
214
|
+
var _utils = require('./utils');
|
|
215
|
+
|
|
216
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
217
|
+
|
|
218
|
+
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
|
219
|
+
|
|
220
|
+
const debug = (0, _debug2.default)('kdk:core:test:layout');
|
|
221
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../test/client/core/layout.js"],"names":["page","opener","selector","evaluate","document","querySelector","click","waitForTimeout","debug","clickOpener","clickTopOpener","clickRightOpener","clickBottomOpener","clickLeftOpener","isTopPaneVisible","isRightPaneVisible","isBottomPaneVisible","isLeftPaneVisible","action","wait","clickAction","pane","isPaneVisible","clickPaneAction","clickTopPaneAction","clickRightPaneAction","clickBottomPaneAction","clickLeftPaneAction","clickFab","closeWelcomeDialog","isToastVisible","logout"],"mappings":"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","file":"layout.js","sourcesContent":["import makeDebug from 'debug'\r\nimport { click, isElementVisible } from './utils'\r\n\r\nconst debug = makeDebug('kdk:core:test:layout')\r\n\r\nasync function clickOpener (page, opener) {\r\n const selector = `#${opener}-opener`\r\n await page.evaluate((selector) => document.querySelector(selector).click(), selector)\r\n await page.waitForTimeout(500)\r\n debug(`Clicked opener ${selector}`)\r\n}\r\n\r\nexport async function clickTopOpener (page) {\r\n await clickOpener(page, 'top')\r\n}\r\n\r\nexport async function clickRightOpener (page) {\r\n await clickOpener(page, 'right')\r\n}\r\n\r\nexport async function clickBottomOpener (page) {\r\n await clickOpener(page, 'bottom')\r\n}\r\n\r\nexport async function clickLeftOpener (page) {\r\n await clickOpener(page, 'left')\r\n}\r\n\r\nexport async function isTopPaneVisible (page) {\r\n return isElementVisible(page, '#top-panel')\r\n}\r\n\r\nexport async function isRightPaneVisible (page) {\r\n return isElementVisible(page, '#right-panel')\r\n}\r\n\r\nexport async function isBottomPaneVisible (page) {\r\n return isElementVisible(page, '#bottom-panel')\r\n}\r\n\r\nexport async function isLeftPaneVisible (page) {\r\n return isElementVisible(page, '#left-panel')\r\n}\r\n\r\nexport async function clickAction (page, action, wait = 250) {\r\n const selector = `#${action}`\r\n await click(page, selector, wait)\r\n debug(`Clicked action ${selector}`)\r\n}\r\n\r\nasync function clickPaneAction (page, pane, action, wait) {\r\n const isPaneVisible = await isElementVisible(page, `#${pane}-panel`)\r\n if (!isPaneVisible) await clickOpener(page, pane)\r\n await clickAction(page, action, wait)\r\n if (!isPaneVisible) await clickOpener(page, pane)\r\n}\r\n\r\nexport async function clickTopPaneAction (page, action, wait = 250) {\r\n await clickPaneAction(page, 'top', action, wait)\r\n}\r\n\r\nexport async function clickRightPaneAction (page, action, wait = 250) {\r\n await clickPaneAction(page, 'right', action, wait)\r\n}\r\n\r\nexport async function clickBottomPaneAction (page, action, wait = 250) {\r\n await clickPaneAction(page, 'bottom', action, wait)\r\n}\r\n\r\nexport async function clickLeftPaneAction (page, action, wait = 250) {\r\n const isPaneVisible = await isLeftPaneVisible(page)\r\n if (!isPaneVisible) await clickLeftOpener(page)\r\n await clickAction(page, action, wait)\r\n}\r\n\r\nexport async function clickFab (page) {\r\n return clickAction(page, 'fab')\r\n}\r\n\r\nexport async function closeWelcomeDialog (page) {\r\n await click(page, '.q-dialog #close-button')\r\n}\r\n\r\nexport async function isToastVisible (page) {\r\n return isElementVisible(page, '[role=\"alert\"]')\r\n}\r\n\r\nexport async function logout (page) {\r\n await clickLeftPaneAction(page, 'logout', 1000)\r\n}\r\n"]}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Runner = undefined;
|
|
7
|
+
|
|
8
|
+
var _lodash = require('lodash');
|
|
9
|
+
|
|
10
|
+
var _lodash2 = _interopRequireDefault(_lodash);
|
|
11
|
+
|
|
12
|
+
var _fs = require('fs');
|
|
13
|
+
|
|
14
|
+
var _fs2 = _interopRequireDefault(_fs);
|
|
15
|
+
|
|
16
|
+
var _path = require('path');
|
|
17
|
+
|
|
18
|
+
var _path2 = _interopRequireDefault(_path);
|
|
19
|
+
|
|
20
|
+
var _debug = require('debug');
|
|
21
|
+
|
|
22
|
+
var _debug2 = _interopRequireDefault(_debug);
|
|
23
|
+
|
|
24
|
+
var _puppeteer = require('puppeteer');
|
|
25
|
+
|
|
26
|
+
var _puppeteer2 = _interopRequireDefault(_puppeteer);
|
|
27
|
+
|
|
28
|
+
var _utils = require('./utils');
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
31
|
+
|
|
32
|
+
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
|
33
|
+
|
|
34
|
+
const debug = (0, _debug2.default)('kdk:core:test:runner');
|
|
35
|
+
|
|
36
|
+
function merger(objValue, srcValue) {
|
|
37
|
+
if (_lodash2.default.isArray(objValue)) {
|
|
38
|
+
return objValue.concat(srcValue);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
class Runner {
|
|
43
|
+
constructor(suite, options = {}) {
|
|
44
|
+
this.warnings = [];
|
|
45
|
+
this.errors = [];
|
|
46
|
+
// Compute helper default options
|
|
47
|
+
const defaultPort = process.env.CLIENT_PORT || '8080';
|
|
48
|
+
let domain = `http://localhost:${defaultPort}`;
|
|
49
|
+
// Override defaults if env provided, we need the app name in this case
|
|
50
|
+
if (process.env.SUBDOMAIN) {
|
|
51
|
+
domain = `https://${options.appName}.` + process.env.SUBDOMAIN;
|
|
52
|
+
}
|
|
53
|
+
const defaultBrowser = process.env.BROWSER || 'chrome';
|
|
54
|
+
const defaultDataDir = _path2.default.join('.', 'test', 'data', suite);
|
|
55
|
+
const defaultRunDir = _path2.default.join('.', 'test', 'run', defaultBrowser, suite);
|
|
56
|
+
// Set the runner options using default and overrrident options
|
|
57
|
+
this.options = _lodash2.default.mergeWith({
|
|
58
|
+
baseUrl: domain,
|
|
59
|
+
browser: {
|
|
60
|
+
product: defaultBrowser,
|
|
61
|
+
headless: process.env.HEADLESS ? !!process.env.HEADLESS : false,
|
|
62
|
+
defaultViewport: {
|
|
63
|
+
width: +process.env.VIEWPORT_WIDTH || 1024,
|
|
64
|
+
height: +process.env.VIEWPORT_HEIGHT || 768
|
|
65
|
+
},
|
|
66
|
+
args: process.env.BROWSER_ARGS ? _lodash2.default.split(process.env.BROWSER_ARGS, ' ') : []
|
|
67
|
+
},
|
|
68
|
+
dataDir: defaultDataDir,
|
|
69
|
+
runDir: defaultRunDir,
|
|
70
|
+
screenrefsDir: _path2.default.join(defaultDataDir, 'screenrefs'),
|
|
71
|
+
screenshotsDir: _path2.default.join(defaultRunDir, '/screenshots'),
|
|
72
|
+
mode: 'run',
|
|
73
|
+
writeDiffs: false,
|
|
74
|
+
matchTreshold: 0.1
|
|
75
|
+
}, options, merger);
|
|
76
|
+
// Display the runner options
|
|
77
|
+
console.log('Runner created with the following options:');
|
|
78
|
+
console.log(this.options);
|
|
79
|
+
// Create the run directory if needed
|
|
80
|
+
if (!_fs2.default.existsSync(this.options.screenshotsDir)) {
|
|
81
|
+
console.log('Creating runner directory structure');
|
|
82
|
+
_fs2.default.mkdirSync(this.options.screenshotsDir, { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
getUrl(path) {
|
|
87
|
+
return path ? this.options.baseUrl + '/#/' + path : this.options.baseUrl;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
getDataPath(key) {
|
|
91
|
+
return _path2.default.join(this.options.dataDir, key);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
start(path) {
|
|
95
|
+
var _this = this;
|
|
96
|
+
|
|
97
|
+
return _asyncToGenerator(function* () {
|
|
98
|
+
_this.browser = yield _puppeteer2.default.launch(_this.options.browser);
|
|
99
|
+
_this.page = yield _this.browser.newPage();
|
|
100
|
+
// Handle geolocation if needed
|
|
101
|
+
if (_this.options.geolocation) {
|
|
102
|
+
const context = _this.browser.defaultBrowserContext();
|
|
103
|
+
yield context.overridePermissions(_this.getUrl(path), ['geolocation']);
|
|
104
|
+
_this.page.setGeolocation(_this.options.geolocation);
|
|
105
|
+
}
|
|
106
|
+
// Handle the local storage if needed
|
|
107
|
+
if (_this.options.localStorage) {
|
|
108
|
+
yield _this.page.evaluateOnNewDocument(function (items) {
|
|
109
|
+
for (const [key, value] of Object.entries(items)) localStorage.setItem(key, value);
|
|
110
|
+
}, _this.options.localStorage);
|
|
111
|
+
}
|
|
112
|
+
// Catch errors
|
|
113
|
+
_this.page.on('console', function (message) {
|
|
114
|
+
if (message._type === 'error') {
|
|
115
|
+
_this.errors.push(message);
|
|
116
|
+
debug('Console error:', message);
|
|
117
|
+
}
|
|
118
|
+
if (message._type === 'warning') {
|
|
119
|
+
_this.warnings.push(message);
|
|
120
|
+
// debug('Console warning:', message)
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
// Navigate the to given url
|
|
124
|
+
yield _this.page.goto(_this.getUrl(path));
|
|
125
|
+
return _this.page;
|
|
126
|
+
})();
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
stop() {
|
|
130
|
+
var _this2 = this;
|
|
131
|
+
|
|
132
|
+
return _asyncToGenerator(function* () {
|
|
133
|
+
// Ensure it has been correctly initialized
|
|
134
|
+
if (_this2.browser) yield _this2.browser.close();
|
|
135
|
+
})();
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
capture(key, boundingBox) {
|
|
139
|
+
var _this3 = this;
|
|
140
|
+
|
|
141
|
+
return _asyncToGenerator(function* () {
|
|
142
|
+
// If run mode store in screenshots dir, otherwise in screenrefs dir
|
|
143
|
+
const dir = _this3.options.mode === 'run' ? _this3.options.screenshotsDir : _this3.options.screenrefsDir;
|
|
144
|
+
const options = Object.assign({
|
|
145
|
+
path: _path2.default.join(dir, key + '.png'),
|
|
146
|
+
type: 'png'
|
|
147
|
+
}, boundingBox ? { clip: boundingBox } : { fullPage: true });
|
|
148
|
+
yield _this3.page.screenshot(options);
|
|
149
|
+
})();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
captureAndMatch(key, diffTolerance = 1.0, boundingBox = null) {
|
|
153
|
+
var _this4 = this;
|
|
154
|
+
|
|
155
|
+
return _asyncToGenerator(function* () {
|
|
156
|
+
yield _this4.capture(key, boundingBox);
|
|
157
|
+
// If run mode compare, otherwise skip as we only want to record screenrefs
|
|
158
|
+
if (_this4.options.mode === 'run') {
|
|
159
|
+
const runDir = _path2.default.join(_this4.options.screenshotsDir, key + '.png');
|
|
160
|
+
const refPath = _path2.default.join(_this4.options.screenrefsDir, key + '.png');
|
|
161
|
+
const diffFilename = _this4.options.writeDiffs ? _path2.default.join(_this4.options.screenshotsDir, `diff.${key}.png`) : null;
|
|
162
|
+
const diff = (0, _utils.compareImages)(runDir, refPath, _this4.options.matchTreshold, diffFilename);
|
|
163
|
+
return diff.diffRatio <= diffTolerance;
|
|
164
|
+
} else {
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
})();
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
compareCaptures(key1, key2, threshold) {
|
|
171
|
+
const dir = this.options.screenshotsDir;
|
|
172
|
+
const img1 = _path2.default.join(dir, key1 + '.png');
|
|
173
|
+
const img2 = _path2.default.join(dir, key2 + '.png');
|
|
174
|
+
const imgDiff = this.options.writeDiffs ? _path2.default.join(dir, `diff.${key1}.${key2}.png`) : null;
|
|
175
|
+
const result = (0, _utils.compareImages)(img1, img2, threshold, imgDiff);
|
|
176
|
+
return result.diffRatio;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
hasError() {
|
|
180
|
+
return this.errors.length > 0;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
getErrors() {
|
|
184
|
+
return this.errors;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
clearErrors() {
|
|
188
|
+
this.errors = [];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
hasWarning() {
|
|
192
|
+
return this.warnings.length > 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
getWarnings() {
|
|
196
|
+
return this.warnings;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
clearWarnings() {
|
|
200
|
+
this.warnings = [];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
exports.Runner = Runner;
|
|
204
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../test/client/core/runner.js"],"names":["debug","merger","objValue","srcValue","_","isArray","concat","Runner","constructor","suite","options","warnings","errors","defaultPort","process","env","CLIENT_PORT","domain","SUBDOMAIN","appName","defaultBrowser","BROWSER","defaultDataDir","path","join","defaultRunDir","mergeWith","baseUrl","browser","product","headless","HEADLESS","defaultViewport","width","VIEWPORT_WIDTH","height","VIEWPORT_HEIGHT","args","BROWSER_ARGS","split","dataDir","runDir","screenrefsDir","screenshotsDir","mode","writeDiffs","matchTreshold","console","log","fs","existsSync","mkdirSync","recursive","getUrl","getDataPath","key","start","puppeteer","launch","page","newPage","geolocation","context","defaultBrowserContext","overridePermissions","setGeolocation","localStorage","evaluateOnNewDocument","value","Object","entries","items","setItem","on","message","_type","push","goto","stop","close","capture","boundingBox","dir","assign","type","clip","fullPage","screenshot","captureAndMatch","diffTolerance","refPath","diffFilename","diff","diffRatio","compareCaptures","key1","key2","threshold","img1","img2","imgDiff","result","hasError","length","getErrors","clearErrors","hasWarning","getWarnings","clearWarnings"],"mappings":"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","file":"runner.js","sourcesContent":["import _ from 'lodash'\r\nimport fs from 'fs'\r\nimport path from 'path'\r\nimport makeDebug from 'debug'\r\nimport puppeteer from 'puppeteer'\r\nimport { compareImages } from './utils'\r\n\r\nconst debug = makeDebug('kdk:core:test:runner')\r\n\r\nfunction merger (objValue, srcValue) {\r\n if (_.isArray(objValue)) {\r\n return objValue.concat(srcValue)\r\n }\r\n}\r\n\r\nexport class Runner {\r\n constructor (suite, options = {}) {\r\n this.warnings = []\r\n this.errors = []\r\n // Compute helper default options\r\n const defaultPort = process.env.CLIENT_PORT || '8080'\r\n let domain = `http://localhost:${defaultPort}`\r\n // Override defaults if env provided, we need the app name in this case\r\n if (process.env.SUBDOMAIN) {\r\n domain = `https://${options.appName}.` + process.env.SUBDOMAIN\r\n }\r\n const defaultBrowser = process.env.BROWSER || 'chrome'\r\n const defaultDataDir = path.join('.', 'test', 'data', suite)\r\n const defaultRunDir = path.join('.', 'test', 'run', defaultBrowser, suite)\r\n // Set the runner options using default and overrrident options\r\n this.options = _.mergeWith({\r\n baseUrl: domain,\r\n browser: {\r\n product: defaultBrowser,\r\n headless: process.env.HEADLESS ? !!process.env.HEADLESS : false,\r\n defaultViewport: {\r\n width: +process.env.VIEWPORT_WIDTH || 1024,\r\n height: +process.env.VIEWPORT_HEIGHT || 768\r\n },\r\n args: process.env.BROWSER_ARGS ? _.split(process.env.BROWSER_ARGS, ' ') : []\r\n },\r\n dataDir: defaultDataDir,\r\n runDir: defaultRunDir,\r\n screenrefsDir: path.join(defaultDataDir, 'screenrefs'),\r\n screenshotsDir: path.join(defaultRunDir, '/screenshots'),\r\n mode: 'run',\r\n writeDiffs: false,\r\n matchTreshold: 0.1\r\n }, options, merger)\r\n // Display the runner options\r\n console.log('Runner created with the following options:')\r\n console.log(this.options)\r\n // Create the run directory if needed\r\n if (!fs.existsSync(this.options.screenshotsDir)) {\r\n console.log('Creating runner directory structure')\r\n fs.mkdirSync(this.options.screenshotsDir, { recursive: true })\r\n }\r\n }\r\n\r\n getUrl (path) {\r\n return path ? this.options.baseUrl + '/#/' + path : this.options.baseUrl\r\n }\r\n\r\n getDataPath (key) {\r\n return path.join(this.options.dataDir, key)\r\n }\r\n\r\n async start (path) {\r\n this.browser = await puppeteer.launch(this.options.browser)\r\n this.page = await this.browser.newPage()\r\n // Handle geolocation if needed\r\n if (this.options.geolocation) {\r\n const context = this.browser.defaultBrowserContext()\r\n await context.overridePermissions(this.getUrl(path), ['geolocation'])\r\n this.page.setGeolocation(this.options.geolocation)\r\n }\r\n // Handle the local storage if needed\r\n if (this.options.localStorage) {\r\n await this.page.evaluateOnNewDocument(items => {\r\n for (const [key, value] of Object.entries(items)) localStorage.setItem(key, value)\r\n }, this.options.localStorage)\r\n }\r\n // Catch errors\r\n this.page.on('console', message => {\r\n if (message._type === 'error') {\r\n this.errors.push(message)\r\n debug('Console error:', message)\r\n }\r\n if (message._type === 'warning') {\r\n this.warnings.push(message)\r\n // debug('Console warning:', message)\r\n }\r\n })\r\n // Navigate the to given url\r\n await this.page.goto(this.getUrl(path))\r\n return this.page\r\n }\r\n\r\n async stop () {\r\n // Ensure it has been correctly initialized\r\n if (this.browser) await this.browser.close()\r\n }\r\n\r\n async capture (key, boundingBox) {\r\n // If run mode store in screenshots dir, otherwise in screenrefs dir\r\n const dir = (this.options.mode === 'run' ? this.options.screenshotsDir : this.options.screenrefsDir)\r\n const options = Object.assign(\r\n {\r\n path: path.join(dir, key + '.png'),\r\n type: 'png'\r\n }, boundingBox ? { clip: boundingBox } : { fullPage: true })\r\n await this.page.screenshot(options)\r\n }\r\n\r\n async captureAndMatch (key, diffTolerance = 1.0, boundingBox = null) {\r\n await this.capture(key, boundingBox)\r\n // If run mode compare, otherwise skip as we only want to record screenrefs\r\n if (this.options.mode === 'run') {\r\n const runDir = path.join(this.options.screenshotsDir, key + '.png')\r\n const refPath = path.join(this.options.screenrefsDir, key + '.png')\r\n const diffFilename = this.options.writeDiffs ? path.join(this.options.screenshotsDir, `diff.${key}.png`) : null\r\n const diff = compareImages(runDir, refPath, this.options.matchTreshold, diffFilename)\r\n return diff.diffRatio <= diffTolerance\r\n } else {\r\n return true\r\n }\r\n }\r\n\r\n compareCaptures (key1, key2, threshold) {\r\n const dir = this.options.screenshotsDir\r\n const img1 = path.join(dir, key1 + '.png')\r\n const img2 = path.join(dir, key2 + '.png')\r\n const imgDiff = this.options.writeDiffs ? path.join(dir, `diff.${key1}.${key2}.png`) : null\r\n const result = compareImages(img1, img2, threshold, imgDiff)\r\n return result.diffRatio\r\n }\r\n\r\n hasError () {\r\n return this.errors.length > 0\r\n }\r\n\r\n getErrors () {\r\n return this.errors\r\n }\r\n\r\n clearErrors () {\r\n this.errors = []\r\n }\r\n\r\n hasWarning () {\r\n return this.warnings.length > 0\r\n }\r\n\r\n getWarnings () {\r\n return this.warnings\r\n }\r\n\r\n clearWarnings () {\r\n this.warnings = []\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.register = exports.goToRegisterScreen = exports.login = exports.goToLoginScreen = undefined;
|
|
7
|
+
|
|
8
|
+
let goToLoginScreen = exports.goToLoginScreen = (() => {
|
|
9
|
+
var _ref = _asyncToGenerator(function* (page) {
|
|
10
|
+
yield Promise.all([page.waitForNavigation(), (0, _utils.click)(page, '#login-link')]);
|
|
11
|
+
debug('Login screen ready');
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
return function goToLoginScreen(_x) {
|
|
15
|
+
return _ref.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
})();
|
|
18
|
+
|
|
19
|
+
let login = exports.login = (() => {
|
|
20
|
+
var _ref2 = _asyncToGenerator(function* (page, user, wait = 5000) {
|
|
21
|
+
yield (0, _utils.type)(page, '#email-field', user.email);
|
|
22
|
+
yield (0, _utils.type)(page, '#password-field', user.password);
|
|
23
|
+
yield (0, _utils.click)(page, 'button', wait);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
return function login(_x2, _x3) {
|
|
27
|
+
return _ref2.apply(this, arguments);
|
|
28
|
+
};
|
|
29
|
+
})();
|
|
30
|
+
|
|
31
|
+
let goToRegisterScreen = exports.goToRegisterScreen = (() => {
|
|
32
|
+
var _ref3 = _asyncToGenerator(function* (page) {
|
|
33
|
+
yield Promise.all([page.waitForNavigation(), (0, _utils.click)(page, '#register-link')]);
|
|
34
|
+
debug('Register screen ready');
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
return function goToRegisterScreen(_x4) {
|
|
38
|
+
return _ref3.apply(this, arguments);
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
|
|
42
|
+
let register = exports.register = (() => {
|
|
43
|
+
var _ref4 = _asyncToGenerator(function* (page, user, wait = 5000) {
|
|
44
|
+
yield (0, _utils.type)(page, '#name-field', user.name);
|
|
45
|
+
yield (0, _utils.type)(page, '#email-field', user.email);
|
|
46
|
+
yield (0, _utils.type)(page, '#password-field', user.password);
|
|
47
|
+
yield (0, _utils.type)(page, '#confirmPassword-field', user.password);
|
|
48
|
+
yield (0, _utils.click)(page, '.q-toggle');
|
|
49
|
+
yield (0, _utils.click)(page, 'button', wait);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
return function register(_x5, _x6) {
|
|
53
|
+
return _ref4.apply(this, arguments);
|
|
54
|
+
};
|
|
55
|
+
})();
|
|
56
|
+
|
|
57
|
+
var _debug = require('debug');
|
|
58
|
+
|
|
59
|
+
var _debug2 = _interopRequireDefault(_debug);
|
|
60
|
+
|
|
61
|
+
var _utils = require('./utils');
|
|
62
|
+
|
|
63
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
64
|
+
|
|
65
|
+
function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; }
|
|
66
|
+
|
|
67
|
+
const debug = (0, _debug2.default)('kdk:core:test:screens');
|
|
68
|
+
//# sourceMappingURL=screens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../test/client/core/screens.js"],"names":["page","Promise","all","waitForNavigation","debug","goToLoginScreen","user","wait","email","password","login","goToRegisterScreen","name","register"],"mappings":";;;;;;;;+BAKO,WAAgCA,IAAhC,EAAsC;AAC3C,UAAMC,QAAQC,GAAR,CAAY,CAChBF,KAAKG,iBAAL,EADgB,EAEhB,kBAAMH,IAAN,EAAY,aAAZ,CAFgB,CAAZ,CAAN;AAIAI,UAAM,oBAAN;AACD,G;;kBANqBC,e;;;;;;gCAQf,WAAsBL,IAAtB,EAA4BM,IAA5B,EAAkCC,OAAO,IAAzC,EAA+C;AACpD,UAAM,iBAAKP,IAAL,EAAW,cAAX,EAA2BM,KAAKE,KAAhC,CAAN;AACA,UAAM,iBAAKR,IAAL,EAAW,iBAAX,EAA8BM,KAAKG,QAAnC,CAAN;AACA,UAAM,kBAAMT,IAAN,EAAY,QAAZ,EAAsBO,IAAtB,CAAN;AACD,G;;kBAJqBG,K;;;;;;gCAMf,WAAmCV,IAAnC,EAAyC;AAC9C,UAAMC,QAAQC,GAAR,CAAY,CAChBF,KAAKG,iBAAL,EADgB,EAEhB,kBAAMH,IAAN,EAAY,gBAAZ,CAFgB,CAAZ,CAAN;AAIAI,UAAM,uBAAN;AACD,G;;kBANqBO,kB;;;;;;gCAQf,WAAyBX,IAAzB,EAA+BM,IAA/B,EAAqCC,OAAO,IAA5C,EAAkD;AACvD,UAAM,iBAAKP,IAAL,EAAW,aAAX,EAA0BM,KAAKM,IAA/B,CAAN;AACA,UAAM,iBAAKZ,IAAL,EAAW,cAAX,EAA2BM,KAAKE,KAAhC,CAAN;AACA,UAAM,iBAAKR,IAAL,EAAW,iBAAX,EAA8BM,KAAKG,QAAnC,CAAN;AACA,UAAM,iBAAKT,IAAL,EAAW,wBAAX,EAAqCM,KAAKG,QAA1C,CAAN;AACA,UAAM,kBAAMT,IAAN,EAAY,WAAZ,CAAN;AACA,UAAM,kBAAMA,IAAN,EAAY,QAAZ,EAAsBO,IAAtB,CAAN;AACD,G;;kBAPqBM,Q;;;;;AA3BtB;;;;AACA;;;;;;AAEA,MAAMT,QAAQ,qBAAU,uBAAV,CAAd","file":"screens.js","sourcesContent":["import makeDebug from 'debug'\r\nimport { click, type } from './utils'\r\n\r\nconst debug = makeDebug('kdk:core:test:screens')\r\n\r\nexport async function goToLoginScreen (page) {\r\n await Promise.all([\r\n page.waitForNavigation(),\r\n click(page, '#login-link')\r\n ])\r\n debug('Login screen ready')\r\n}\r\n\r\nexport async function login (page, user, wait = 5000) {\r\n await type(page, '#email-field', user.email)\r\n await type(page, '#password-field', user.password)\r\n await click(page, 'button', wait)\r\n}\r\n\r\nexport async function goToRegisterScreen (page) {\r\n await Promise.all([\r\n page.waitForNavigation(),\r\n click(page, '#register-link')\r\n ])\r\n debug('Register screen ready')\r\n}\r\n\r\nexport async function register (page, user, wait = 5000) {\r\n await type(page, '#name-field', user.name)\r\n await type(page, '#email-field', user.email)\r\n await type(page, '#password-field', user.password)\r\n await type(page, '#confirmPassword-field', user.password)\r\n await click(page, '.q-toggle')\r\n await click(page, 'button', wait)\r\n}\r\n"]}
|