@sap_oss/wdio-qmate-service 1.0.0
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/.eslintignore +3 -0
- package/.eslintrc.yml +33 -0
- package/.reuse/dep5 +29 -0
- package/LICENSE +201 -0
- package/LICENSES/Apache-2.0.txt +73 -0
- package/README.md +20 -0
- package/docs/contact.md +10 -0
- package/docs/doc.md +5188 -0
- package/docs/gettingStarted/selectors.md +168 -0
- package/docs/gettingStarted/setup.md +8 -0
- package/docs/index.md +14 -0
- package/docs/style/custom.css +24 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +171 -0
- package/lib/index.js.map +1 -0
- package/lib/reuse/authenticator/authConfig.d.ts +54 -0
- package/lib/reuse/authenticator/authConfig.js +55 -0
- package/lib/reuse/authenticator/authConfig.js.map +1 -0
- package/lib/reuse/authenticator/authHandler.d.ts +6 -0
- package/lib/reuse/authenticator/authHandler.js +37 -0
- package/lib/reuse/authenticator/authHandler.js.map +1 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.js +36 -0
- package/lib/reuse/authenticator/basicUrlAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/customAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/customAuthenticator.js +60 -0
- package/lib/reuse/authenticator/customAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/formAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/formAuthenticator.js +57 -0
- package/lib/reuse/authenticator/formAuthenticator.js.map +1 -0
- package/lib/reuse/authenticator/plainAuthenticator.d.ts +2 -0
- package/lib/reuse/authenticator/plainAuthenticator.js +20 -0
- package/lib/reuse/authenticator/plainAuthenticator.js.map +1 -0
- package/lib/reuse/data/authenticators.json +16 -0
- package/lib/reuse/helper/clientsideUI5scripts.d.ts +1 -0
- package/lib/reuse/helper/clientsideUI5scripts.js +388 -0
- package/lib/reuse/helper/clientsideUI5scripts.js.map +1 -0
- package/lib/reuse/helper/jsDocGen.d.ts +1 -0
- package/lib/reuse/helper/jsDocGen.js +45 -0
- package/lib/reuse/helper/jsDocGen.js.map +1 -0
- package/lib/reuse/index.d.ts +5 -0
- package/lib/reuse/index.js +89 -0
- package/lib/reuse/index.js.map +1 -0
- package/lib/reuse/modules/common/Common.d.ts +12 -0
- package/lib/reuse/modules/common/Common.js +21 -0
- package/lib/reuse/modules/common/Common.js.map +1 -0
- package/lib/reuse/modules/common/assertion.d.ts +65 -0
- package/lib/reuse/modules/common/assertion.js +91 -0
- package/lib/reuse/modules/common/assertion.js.map +1 -0
- package/lib/reuse/modules/common/constants/date.constants.d.ts +8 -0
- package/lib/reuse/modules/common/constants/date.constants.js +13 -0
- package/lib/reuse/modules/common/constants/date.constants.js.map +1 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.d.ts +9 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.js +14 -0
- package/lib/reuse/modules/common/constants/userInteraction.constants.js.map +1 -0
- package/lib/reuse/modules/common/date.d.ts +84 -0
- package/lib/reuse/modules/common/date.js +164 -0
- package/lib/reuse/modules/common/date.js.map +1 -0
- package/lib/reuse/modules/common/navigation.d.ts +26 -0
- package/lib/reuse/modules/common/navigation.js +56 -0
- package/lib/reuse/modules/common/navigation.js.map +1 -0
- package/lib/reuse/modules/common/types/date.types.d.ts +2 -0
- package/lib/reuse/modules/common/types/date.types.js +3 -0
- package/lib/reuse/modules/common/types/date.types.js.map +1 -0
- package/lib/reuse/modules/common/userInteraction.d.ts +104 -0
- package/lib/reuse/modules/common/userInteraction.js +199 -0
- package/lib/reuse/modules/common/userInteraction.js.map +1 -0
- package/lib/reuse/modules/nonUi5/NonUi5.d.ts +12 -0
- package/lib/reuse/modules/nonUi5/NonUi5.js +21 -0
- package/lib/reuse/modules/nonUi5/NonUi5.js.map +1 -0
- package/lib/reuse/modules/nonUi5/assertion.d.ts +62 -0
- package/lib/reuse/modules/nonUi5/assertion.js +127 -0
- package/lib/reuse/modules/nonUi5/assertion.js.map +1 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.d.ts +6 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js +11 -0
- package/lib/reuse/modules/nonUi5/constants/userInteraction.constants.js.map +1 -0
- package/lib/reuse/modules/nonUi5/element.d.ts +286 -0
- package/lib/reuse/modules/nonUi5/element.js +639 -0
- package/lib/reuse/modules/nonUi5/element.js.map +1 -0
- package/lib/reuse/modules/nonUi5/navigation.d.ts +17 -0
- package/lib/reuse/modules/nonUi5/navigation.js +44 -0
- package/lib/reuse/modules/nonUi5/navigation.js.map +1 -0
- package/lib/reuse/modules/nonUi5/userInteraction.d.ts +170 -0
- package/lib/reuse/modules/nonUi5/userInteraction.js +415 -0
- package/lib/reuse/modules/nonUi5/userInteraction.js.map +1 -0
- package/lib/reuse/modules/service/Service.d.ts +8 -0
- package/lib/reuse/modules/service/Service.js +17 -0
- package/lib/reuse/modules/service/Service.js.map +1 -0
- package/lib/reuse/modules/service/odata.d.ts +177 -0
- package/lib/reuse/modules/service/odata.js +347 -0
- package/lib/reuse/modules/service/odata.js.map +1 -0
- package/lib/reuse/modules/service/rest.d.ts +66 -0
- package/lib/reuse/modules/service/rest.js +168 -0
- package/lib/reuse/modules/service/rest.js.map +1 -0
- package/lib/reuse/modules/service/soap.d.ts +0 -0
- package/lib/reuse/modules/service/soap.js +2 -0
- package/lib/reuse/modules/service/soap.js.map +1 -0
- package/lib/reuse/modules/ui5/Ui5.d.ts +34 -0
- package/lib/reuse/modules/ui5/Ui5.js +41 -0
- package/lib/reuse/modules/ui5/Ui5.js.map +1 -0
- package/lib/reuse/modules/ui5/assertion.d.ts +183 -0
- package/lib/reuse/modules/ui5/assertion.js +493 -0
- package/lib/reuse/modules/ui5/assertion.js.map +1 -0
- package/lib/reuse/modules/ui5/confirmationDialog.d.ts +86 -0
- package/lib/reuse/modules/ui5/confirmationDialog.js +145 -0
- package/lib/reuse/modules/ui5/confirmationDialog.js.map +1 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.d.ts +4 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.js +9 -0
- package/lib/reuse/modules/ui5/constants/mockserver.constants.js.map +1 -0
- package/lib/reuse/modules/ui5/control.d.ts +84 -0
- package/lib/reuse/modules/ui5/control.js +132 -0
- package/lib/reuse/modules/ui5/control.js.map +1 -0
- package/lib/reuse/modules/ui5/date.d.ts +48 -0
- package/lib/reuse/modules/ui5/date.js +153 -0
- package/lib/reuse/modules/ui5/date.js.map +1 -0
- package/lib/reuse/modules/ui5/element.d.ts +160 -0
- package/lib/reuse/modules/ui5/element.js +349 -0
- package/lib/reuse/modules/ui5/element.js.map +1 -0
- package/lib/reuse/modules/ui5/errorDialog.d.ts +39 -0
- package/lib/reuse/modules/ui5/errorDialog.js +65 -0
- package/lib/reuse/modules/ui5/errorDialog.js.map +1 -0
- package/lib/reuse/modules/ui5/footerBar.d.ts +153 -0
- package/lib/reuse/modules/ui5/footerBar.js +240 -0
- package/lib/reuse/modules/ui5/footerBar.js.map +1 -0
- package/lib/reuse/modules/ui5/mockserver.d.ts +154 -0
- package/lib/reuse/modules/ui5/mockserver.js +665 -0
- package/lib/reuse/modules/ui5/mockserver.js.map +1 -0
- package/lib/reuse/modules/ui5/navigation.d.ts +103 -0
- package/lib/reuse/modules/ui5/navigation.js +275 -0
- package/lib/reuse/modules/ui5/navigation.js.map +1 -0
- package/lib/reuse/modules/ui5/navigationBar.d.ts +48 -0
- package/lib/reuse/modules/ui5/navigationBar.js +141 -0
- package/lib/reuse/modules/ui5/navigationBar.js.map +1 -0
- package/lib/reuse/modules/ui5/qunit.d.ts +17 -0
- package/lib/reuse/modules/ui5/qunit.js +52 -0
- package/lib/reuse/modules/ui5/qunit.js.map +1 -0
- package/lib/reuse/modules/ui5/session.d.ts +117 -0
- package/lib/reuse/modules/ui5/session.js +374 -0
- package/lib/reuse/modules/ui5/session.js.map +1 -0
- package/lib/reuse/modules/ui5/table.d.ts +61 -0
- package/lib/reuse/modules/ui5/table.js +188 -0
- package/lib/reuse/modules/ui5/table.js.map +1 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.d.ts +2 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.js +3 -0
- package/lib/reuse/modules/ui5/types/mockserver.types.js.map +1 -0
- package/lib/reuse/modules/ui5/userInteraction.d.ts +304 -0
- package/lib/reuse/modules/ui5/userInteraction.js +690 -0
- package/lib/reuse/modules/ui5/userInteraction.js.map +1 -0
- package/lib/reuse/modules/util/Util.d.ts +22 -0
- package/lib/reuse/modules/util/Util.js +27 -0
- package/lib/reuse/modules/util/Util.js.map +1 -0
- package/lib/reuse/modules/util/browser.d.ts +167 -0
- package/lib/reuse/modules/util/browser.js +367 -0
- package/lib/reuse/modules/util/browser.js.map +1 -0
- package/lib/reuse/modules/util/console.d.ts +56 -0
- package/lib/reuse/modules/util/console.js +152 -0
- package/lib/reuse/modules/util/console.js.map +1 -0
- package/lib/reuse/modules/util/constants/formatter.constants.d.ts +11 -0
- package/lib/reuse/modules/util/constants/formatter.constants.js +16 -0
- package/lib/reuse/modules/util/constants/formatter.constants.js.map +1 -0
- package/lib/reuse/modules/util/data.d.ts +36 -0
- package/lib/reuse/modules/util/data.js +87 -0
- package/lib/reuse/modules/util/data.js.map +1 -0
- package/lib/reuse/modules/util/file.d.ts +55 -0
- package/lib/reuse/modules/util/file.js +159 -0
- package/lib/reuse/modules/util/file.js.map +1 -0
- package/lib/reuse/modules/util/formatter.d.ts +90 -0
- package/lib/reuse/modules/util/formatter.js +210 -0
- package/lib/reuse/modules/util/formatter.js.map +1 -0
- package/lib/reuse/modules/util/function.d.ts +48 -0
- package/lib/reuse/modules/util/function.js +161 -0
- package/lib/reuse/modules/util/function.js.map +1 -0
- package/lib/reuse/modules/util/system.d.ts +17 -0
- package/lib/reuse/modules/util/system.js +58 -0
- package/lib/reuse/modules/util/system.js.map +1 -0
- package/lib/reuse/modules/util/types/formatter.types.d.ts +2 -0
- package/lib/reuse/modules/util/types/formatter.types.js +3 -0
- package/lib/reuse/modules/util/types/formatter.types.js.map +1 -0
- package/lib/scripts/clientsideUI5scripts.d.ts +1 -0
- package/lib/scripts/clientsideUI5scripts.js +315 -0
- package/lib/scripts/clientsideUI5scripts.js.map +1 -0
- package/lib/scripts/dataExchange/dataExchange.d.ts +1 -0
- package/lib/scripts/dataExchange/dataExchange.js +224 -0
- package/lib/scripts/dataExchange/dataExchange.js.map +1 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.d.ts +63 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.js +211 -0
- package/lib/scripts/dataExchange/dataExchangeUtil.js.map +1 -0
- package/lib/scripts/hooks/after.d.ts +8 -0
- package/lib/scripts/hooks/after.js +30 -0
- package/lib/scripts/hooks/after.js.map +1 -0
- package/lib/scripts/hooks/before.d.ts +8 -0
- package/lib/scripts/hooks/before.js +38 -0
- package/lib/scripts/hooks/before.js.map +1 -0
- package/lib/scripts/hooks/beforeSession.d.ts +8 -0
- package/lib/scripts/hooks/beforeSession.js +37 -0
- package/lib/scripts/hooks/beforeSession.js.map +1 -0
- package/lib/scripts/hooks/onComplete.d.ts +9 -0
- package/lib/scripts/hooks/onComplete.js +31 -0
- package/lib/scripts/hooks/onComplete.js.map +1 -0
- package/lib/scripts/hooks/onPrepare.d.ts +6 -0
- package/lib/scripts/hooks/onPrepare.js +36 -0
- package/lib/scripts/hooks/onPrepare.js.map +1 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.d.ts +2 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.js +193 -0
- package/lib/scripts/hooks/utils/addLocatorCommands.js.map +1 -0
- package/lib/scripts/hooks/utils/browserLog.d.ts +2 -0
- package/lib/scripts/hooks/utils/browserLog.js +39 -0
- package/lib/scripts/hooks/utils/browserLog.js.map +1 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.d.ts +9 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.js +46 -0
- package/lib/scripts/hooks/utils/dataExchangeCommands.js.map +1 -0
- package/lib/scripts/hooks/utils/decryption.d.ts +13 -0
- package/lib/scripts/hooks/utils/decryption.js +90 -0
- package/lib/scripts/hooks/utils/decryption.js.map +1 -0
- package/lib/scripts/hooks/utils/lib.d.ts +4 -0
- package/lib/scripts/hooks/utils/lib.js +330 -0
- package/lib/scripts/hooks/utils/lib.js.map +1 -0
- package/lib/scripts/hooks/utils/locatorCommands.d.ts +10 -0
- package/lib/scripts/hooks/utils/locatorCommands.js +216 -0
- package/lib/scripts/hooks/utils/locatorCommands.js.map +1 -0
- package/lib/scripts/locators/qmateLocator.d.ts +1 -0
- package/lib/scripts/locators/qmateLocator.js +1384 -0
- package/lib/scripts/locators/qmateLocator.js.map +1 -0
- package/lib/scripts/locators/uiveri5Locator.d.ts +1 -0
- package/lib/scripts/locators/uiveri5Locator.js +21 -0
- package/lib/scripts/locators/uiveri5Locator.js.map +1 -0
- package/mkdocs.yml +53 -0
- package/package.json +152 -0
- package/test/.eslintrc.yml +6 -0
- package/test/authenticator/package.json +13 -0
- package/test/authenticator/staticLogin/configCustom.js +22 -0
- package/test/authenticator/staticLogin/configCustomViaConfig.js +20 -0
- package/test/authenticator/staticLogin/configFiori.js +19 -0
- package/test/authenticator/staticLogin/configPlain.js +17 -0
- package/test/authenticator/staticLogin/configSapCloud.js +18 -0
- package/test/authenticator/staticLogin/html/custom.html +10 -0
- package/test/authenticator/staticLogin/html/fiori.html +10 -0
- package/test/authenticator/staticLogin/html/home.html +7 -0
- package/test/authenticator/staticLogin/html/sapCloud.html +10 -0
- package/test/authenticator/staticLogin/specs/custom.spec.js +6 -0
- package/test/authenticator/staticLogin/specs/customViaConfig.spec.js +10 -0
- package/test/authenticator/staticLogin/specs/fiori.spec.js +6 -0
- package/test/authenticator/staticLogin/specs/plain.spec.js +64 -0
- package/test/authenticator/staticLogin/specs/sapCloud.spec.js +6 -0
- package/test/authenticator/staticLogin/staticServerConfig.js +20 -0
- package/test/authenticator/systemLogin/configCustom.js +26 -0
- package/test/authenticator/systemLogin/configFiori.js +24 -0
- package/test/authenticator/systemLogin/configPlain.js +22 -0
- package/test/authenticator/systemLogin/configSapCloud.js +24 -0
- package/test/authenticator/systemLogin/specs/custom.spec.js +13 -0
- package/test/authenticator/systemLogin/specs/fiori.spec.js +12 -0
- package/test/authenticator/systemLogin/specs/plain.spec.js +21 -0
- package/test/authenticator/systemLogin/specs/sapCloud.spec.js +13 -0
- package/test/core/README.md +17 -0
- package/test/core/dataExchange/config.export.js +56 -0
- package/test/core/dataExchange/config.import.js +47 -0
- package/test/core/dataExchange/config.js +52 -0
- package/test/core/dataExchange/config.parallel.group.js +61 -0
- package/test/core/dataExchange/config.parallel.js +58 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/dummy1.txt +0 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/Limit-Purchase-Order.json +29 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchase-orders/ServicePurchaseOrder.2Items.json +67 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/purchaseRequisition_HI.json +31 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/LimitPurchaseOrder.json +29 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderItems.json +58 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/PurchaseOrderWithScheduline.json +27 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServiceAndMaterialPurchaseOrder.json +65 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder.json +39 -0
- package/test/core/dataExchange/data/another/folder/data/anotherFolder/subfolder/ServicePurchaseOrder2Items.json +67 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/data.json +5 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/dummy1.txt +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/dummy2.txt +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/empty.json +0 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/purchaseRequisition.json +31 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/supplierInvoice.json +17 -0
- package/test/core/dataExchange/data/my/folder/data/qs9/webUser.json +6 -0
- package/test/core/dataExchange/data/ui/moreDataFolder/anotherUser.json +6 -0
- package/test/core/dataExchange/data/ui/user.json +6 -0
- package/test/core/dataExchange/data/ui/webUser.json +6 -0
- package/test/core/dataExchange/specs/export.fast.spec.js +48 -0
- package/test/core/dataExchange/specs/export.slow.spec.js +50 -0
- package/test/core/dataExchange/specs/export.spec.js +103 -0
- package/test/core/dataExchange/specs/import.spec.js +144 -0
- package/test/core/dataExchange/specs/importExport.spec.js +196 -0
- package/test/core/dataExchange/utils.js +160 -0
- package/test/core/functional/README.md +30 -0
- package/test/core/functional/chaining/chaining.test.js +137 -0
- package/test/core/functional/chaining/test.conf.js +31 -0
- package/test/core/functional/locators/ancestorProperties.test.js +99 -0
- package/test/core/functional/locators/childProperties.test.js +40 -0
- package/test/core/functional/locators/descendantProperties.test.js +107 -0
- package/test/core/functional/locators/domProperties.test.js +60 -0
- package/test/core/functional/locators/elementProperties.test.js +114 -0
- package/test/core/functional/locators/mixedProperties.test.js +170 -0
- package/test/core/functional/locators/parentProperties.test.js +47 -0
- package/test/core/functional/locators/siblingProperties.test.js +120 -0
- package/test/core/functional/locators/test.locator.conf.js +38 -0
- package/test/core/functional/locators/utils.js +6 -0
- package/test/core/functional/nativeBrowser/runInBrowser.test.js +111 -0
- package/test/core/functional/nativeBrowser/test.conf.js +31 -0
- package/test/core/functional/nonUi5/basic.test.js +10 -0
- package/test/core/functional/nonUi5/getWithDomElement.test.js +51 -0
- package/test/core/functional/nonUi5/getWithDomElements.test.js +141 -0
- package/test/core/functional/nonUi5/test.conf.js +32 -0
- package/test/core/functional/ui5Properties/getAggregations.test.js +102 -0
- package/test/core/functional/ui5Properties/getAssociations.test.js +24 -0
- package/test/core/functional/ui5Properties/getBindingInfos.test.js +71 -0
- package/test/core/functional/ui5Properties/getProperties.test.js +226 -0
- package/test/core/functional/ui5Properties/test.conf.js +16 -0
- package/test/core/functional/uiveri5/sample.test.js +61 -0
- package/test/core/functional/uiveri5/test.conf.js +31 -0
- package/test/core/package-lock.json +0 -0
- package/test/core/package.json +12 -0
- package/test/core/testIntegration/config.js +17 -0
- package/test/core/testIntegration/configMultiCombo.js +17 -0
- package/test/core/testIntegration/configTable.js +18 -0
- package/test/core/testIntegration/filters1.spec.js +1849 -0
- package/test/core/testIntegration/multicombobox.spec.js +134 -0
- package/test/core/testIntegration/table.spec.js +80 -0
- package/test/helper/configurations/base.conf.js +43 -0
- package/test/helper/configurations/chrome.conf.js +47 -0
- package/test/helper/configurations/chrome.headless.conf.js +45 -0
- package/test/helper/configurations/sauce.labs.conf.js +37 -0
- package/test/helper/configurations/sauce.labs.tunnel.conf.js +39 -0
- package/test/helper/sleeper.js +19 -0
- package/test/helper/utils.js +15 -0
- package/test/helper/website/buttons.html +85 -0
- package/test/helper/website/checkBox.html +83 -0
- package/test/helper/website/dragAndDropFailing.html +83 -0
- package/test/helper/website/dragAndDropWdioExample.html +41 -0
- package/test/helper/website/dropdown.html +78 -0
- package/test/helper/website/forms.html +82 -0
- package/test/helper/website/hiddenAndVisible.html +60 -0
- package/test/helper/website/main.css +36 -0
- package/test/helper/website/scrollPage.html +261 -0
- package/test/helper/website/style.css +52 -0
- package/test/helper/website/tables.html +140 -0
- package/test/helper/website/waitForElements.html +73 -0
- package/test/reuse/common/assertion/expectDefined.spec.js +11 -0
- package/test/reuse/common/assertion/expectEqual.spec.js +52 -0
- package/test/reuse/common/assertion/expectFalse.spec.js +9 -0
- package/test/reuse/common/assertion/expectTrue.spec.js +9 -0
- package/test/reuse/common/assertion/expectUndefined.spec.js +11 -0
- package/test/reuse/common/assertion/expectUnequal.spec.js +25 -0
- package/test/reuse/common/assertion/expectUrlToBe.spec.js +27 -0
- package/test/reuse/common/assertion/test.assertion.conf.js +59 -0
- package/test/reuse/common/date/calculate.spec.js +163 -0
- package/test/reuse/common/date/getNextMonth.spec.js +105 -0
- package/test/reuse/common/date/getNextYear.spec.js +72 -0
- package/test/reuse/common/date/getPreviousMonth.spec.js +71 -0
- package/test/reuse/common/date/getPreviousYear.spec.js +72 -0
- package/test/reuse/common/date/getSpecific.spec.js +63 -0
- package/test/reuse/common/date/getToday.spec.js +78 -0
- package/test/reuse/common/date/getTomorrow.spec.js +72 -0
- package/test/reuse/common/date/test.date.conf.js +19 -0
- package/test/reuse/common/date/utils.js +6 -0
- package/test/reuse/common/navigation/navigateToUrl.spec.js +28 -0
- package/test/reuse/common/navigation/navigateToUrlAndRetry.spec.js +27 -0
- package/test/reuse/common/navigation/test.navigation.conf.js +25 -0
- package/test/reuse/common/userInteraction/clearAndFillActive.spec.js +100 -0
- package/test/reuse/common/userInteraction/clearAndFillActiveAndRetry.spec.js +106 -0
- package/test/reuse/common/userInteraction/fillActive.spec.js +230 -0
- package/test/reuse/common/userInteraction/fillActiveAndRetry.spec.js +172 -0
- package/test/reuse/common/userInteraction/pressKey.spec.js +105 -0
- package/test/reuse/common/userInteraction/test.userInteraction.conf.js +53 -0
- package/test/reuse/nonUi5/assertion/expectAttributeToBe.spec.js +45 -0
- package/test/reuse/nonUi5/assertion/expectAttributeToContain.spec.js +43 -0
- package/test/reuse/nonUi5/assertion/expectToBeNotVisible.spec.js +37 -0
- package/test/reuse/nonUi5/assertion/expectToBeVisible.spec.js +63 -0
- package/test/reuse/nonUi5/assertion/expectValueToBe.spec.js +25 -0
- package/test/reuse/nonUi5/assertion/test.assertion.conf.js +60 -0
- package/test/reuse/nonUi5/assertion/test.assertion.sauceLabs.conf.js +64 -0
- package/test/reuse/nonUi5/element/getAllDisplayed.spec.js +39 -0
- package/test/reuse/nonUi5/element/getAttributeValue.spec.js +58 -0
- package/test/reuse/nonUi5/element/getByChild.spec.js +70 -0
- package/test/reuse/nonUi5/element/getByClass.spec.js +64 -0
- package/test/reuse/nonUi5/element/getByCss.spec.js +65 -0
- package/test/reuse/nonUi5/element/getByCssContainingText.spec.js +83 -0
- package/test/reuse/nonUi5/element/getById.spec.js +35 -0
- package/test/reuse/nonUi5/element/getByName.spec.js +30 -0
- package/test/reuse/nonUi5/element/getByParent.spec.js +71 -0
- package/test/reuse/nonUi5/element/getByXPath.spec.js +30 -0
- package/test/reuse/nonUi5/element/getValue.spec.js +51 -0
- package/test/reuse/nonUi5/element/highlight.spec.js +18 -0
- package/test/reuse/nonUi5/element/isPresent.spec.js +39 -0
- package/test/reuse/nonUi5/element/isPresentByCss.spec.js +73 -0
- package/test/reuse/nonUi5/element/isPresentByXPath.spec.js +31 -0
- package/test/reuse/nonUi5/element/setInnerHTML.spec.js +23 -0
- package/test/reuse/nonUi5/element/test.element.conf.js +55 -0
- package/test/reuse/nonUi5/element/test.element.sauceLabs.conf.js +58 -0
- package/test/reuse/nonUi5/element/waitForAll.spec.js +24 -0
- package/test/reuse/nonUi5/element/waitToBeClickable.spec.js +24 -0
- package/test/reuse/nonUi5/element/waitToBePresent.spec.js +32 -0
- package/test/reuse/nonUi5/element/waitToBeVisible.spec.js +36 -0
- package/test/reuse/nonUi5/navigation/navigateToApplication.spec.js +13 -0
- package/test/reuse/nonUi5/navigation/test.navigation.conf.js +14 -0
- package/test/reuse/nonUi5/userInteraction/checkAttributeAndValue.spec.js +135 -0
- package/test/reuse/nonUi5/userInteraction/clear.spec.js +43 -0
- package/test/reuse/nonUi5/userInteraction/clearAndFill.spec.js +51 -0
- package/test/reuse/nonUi5/userInteraction/clearAndFillAndRetry.spec.js +58 -0
- package/test/reuse/nonUi5/userInteraction/clearAndRetry.spec.js +43 -0
- package/test/reuse/nonUi5/userInteraction/click.spec.js +60 -0
- package/test/reuse/nonUi5/userInteraction/clickAndRetry.spec.js +60 -0
- package/test/reuse/nonUi5/userInteraction/clickElementInSvg.spec.js +24 -0
- package/test/reuse/nonUi5/userInteraction/doubleClick.spec.js +22 -0
- package/test/reuse/nonUi5/userInteraction/dragAndDrop.spec.js +40 -0
- package/test/reuse/nonUi5/userInteraction/fill.spec.js +37 -0
- package/test/reuse/nonUi5/userInteraction/fillAndRetry.spec.js +39 -0
- package/test/reuse/nonUi5/userInteraction/mouseOverElement.spec.js +36 -0
- package/test/reuse/nonUi5/userInteraction/moveCursorAndClick.spec.js +24 -0
- package/test/reuse/nonUi5/userInteraction/rightClick.spec.js +13 -0
- package/test/reuse/nonUi5/userInteraction/scrollToElement.spec.js +35 -0
- package/test/reuse/nonUi5/userInteraction/test.userInteraction.conf.js +72 -0
- package/test/reuse/nonUi5/userInteraction/test.userInteraction.sauceLabs.conf.js +78 -0
- package/test/reuse/service/rest/db.json +8 -0
- package/test/reuse/service/rest/delete.spec.js +20 -0
- package/test/reuse/service/rest/get.spec.js +19 -0
- package/test/reuse/service/rest/init.spec.js +35 -0
- package/test/reuse/service/rest/patch.spec.js +29 -0
- package/test/reuse/service/rest/post.spec.js +37 -0
- package/test/reuse/service/rest/test.rest.conf.js +18 -0
- package/test/reuse/ui5/assertion/expectAttributeToBe.spec.js +106 -0
- package/test/reuse/ui5/assertion/expectAttributeToContain.spec.js +78 -0
- package/test/reuse/ui5/assertion/expectBindingContextPathToBe.spec.js +103 -0
- package/test/reuse/ui5/assertion/expectBindingPathToBe.spec.js +164 -0
- package/test/reuse/ui5/assertion/expectMessageToastTextToBe.spec.js +43 -0
- package/test/reuse/ui5/assertion/expectTextToBe.spec.js +39 -0
- package/test/reuse/ui5/assertion/expectToBeEnabled.spec.js +90 -0
- package/test/reuse/ui5/assertion/expectToBeNotEnabled.spec.js +62 -0
- package/test/reuse/ui5/assertion/expectToBeNotVisible.spec.js +52 -0
- package/test/reuse/ui5/assertion/expectToBeVisible.spec.js +69 -0
- package/test/reuse/ui5/assertion/expectToBeVisibleInViewport.spec.js +49 -0
- package/test/reuse/ui5/assertion/expectValidationError.spec.js +54 -0
- package/test/reuse/ui5/assertion/expectValidationSuccess.spec.js +53 -0
- package/test/reuse/ui5/assertion/expectValueToBe.spec.js +57 -0
- package/test/reuse/ui5/assertion/expectValueToBeDefined.spec.js +35 -0
- package/test/reuse/ui5/assertion/test.assertion.conf.js +28 -0
- package/test/reuse/ui5/assertion/test.assertion.sauceLab.conf.js +37 -0
- package/test/reuse/ui5/confirmationDialog/clickCancel.spec.js +88 -0
- package/test/reuse/ui5/confirmationDialog/clickCreate.spec.js +3 -0
- package/test/reuse/ui5/confirmationDialog/clickDelete.spec.js +89 -0
- package/test/reuse/ui5/confirmationDialog/clickNo.spec.js +96 -0
- package/test/reuse/ui5/confirmationDialog/clickOk.spec.js +66 -0
- package/test/reuse/ui5/confirmationDialog/clickRevokeApproval.spec.js +3 -0
- package/test/reuse/ui5/confirmationDialog/clickYes.spec.js +70 -0
- package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.conf.js +20 -0
- package/test/reuse/ui5/confirmationDialog/test.confirmationDialog.sauceLab.conf.js +29 -0
- package/test/reuse/ui5/control/execute.spec.js +29 -0
- package/test/reuse/ui5/control/getAggregationProperty.spec.js +29 -0
- package/test/reuse/ui5/control/getAssociationProperty.spec.js +1 -0
- package/test/reuse/ui5/control/getBindingContextPathProperty.spec.js +30 -0
- package/test/reuse/ui5/control/getProperty.spec.js +30 -0
- package/test/reuse/ui5/control/getPropertyBinding.spec.js +30 -0
- package/test/reuse/ui5/control/test.control.conf.js +19 -0
- package/test/reuse/ui5/control/test.control.sauceLab.conf.js +30 -0
- package/test/reuse/ui5/date/fillRange.spec.js +53 -0
- package/test/reuse/ui5/date/pick.spec.js +136 -0
- package/test/reuse/ui5/date/pickRange.spec.js +143 -0
- package/test/reuse/ui5/date/test.date.conf.js +14 -0
- package/test/reuse/ui5/date/test.date.sauceLab.conf.js +26 -0
- package/test/reuse/ui5/element/getAllDisplayed.spec.js +71 -0
- package/test/reuse/ui5/element/getBindingValue.spec.js +78 -0
- package/test/reuse/ui5/element/getByChild.spec.js +124 -0
- package/test/reuse/ui5/element/getByParent.spec.js +134 -0
- package/test/reuse/ui5/element/getByText.spec.js +67 -0
- package/test/reuse/ui5/element/getDisplayed.spec.js +82 -0
- package/test/reuse/ui5/element/getId.spec.js +72 -0
- package/test/reuse/ui5/element/getPropertyValue.spec.js +91 -0
- package/test/reuse/ui5/element/highlight.spec.js +46 -0
- package/test/reuse/ui5/element/isVisible.spec.js +68 -0
- package/test/reuse/ui5/element/test.element.conf.js +22 -0
- package/test/reuse/ui5/element/test.element.sauceLab.conf.js +33 -0
- package/test/reuse/ui5/errorDialog/clickClose.spec.js +31 -0
- package/test/reuse/ui5/errorDialog/expectToBeVisible.spec.js +30 -0
- package/test/reuse/ui5/errorDialog/test.errorDialog.conf.js +13 -0
- package/test/reuse/ui5/errorDialog/test.errorDialog.sauceLab.conf.js +26 -0
- package/test/reuse/ui5/formatter/addRemoveLeadingZeros.spec.js +18 -0
- package/test/reuse/ui5/formatter/extractNumberFromString.spec.js +34 -0
- package/test/reuse/ui5/formatter/formatDate.spec.js +103 -0
- package/test/reuse/ui5/formatter/test.formatter.conf.js +14 -0
- package/test/reuse/ui5/formatter/test.formatter.sauceLab.conf.js +24 -0
- package/test/reuse/ui5/mockserver_qunit/Component.js +23 -0
- package/test/reuse/ui5/mockserver_qunit/LICENSE.txt +957 -0
- package/test/reuse/ui5/mockserver_qunit/NOTICE.txt +1 -0
- package/test/reuse/ui5/mockserver_qunit/controller/App.controller.js +37 -0
- package/test/reuse/ui5/mockserver_qunit/controller/BaseController.js +30 -0
- package/test/reuse/ui5/mockserver_qunit/controller/Home.controller.js +27 -0
- package/test/reuse/ui5/mockserver_qunit/controller/NotFound.controller.js +34 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/Employee.controller.js +64 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/EmployeeList.controller.js +22 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/Resume.controller.js +83 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverview.controller.js +11 -0
- package/test/reuse/ui5/mockserver_qunit/controller/employee/overview/EmployeeOverviewContent.controller.js +192 -0
- package/test/reuse/ui5/mockserver_qunit/i18n/i18n.properties +42 -0
- package/test/reuse/ui5/mockserver_qunit/index.html +21 -0
- package/test/reuse/ui5/mockserver_qunit/initMockServer.js +16 -0
- package/test/reuse/ui5/mockserver_qunit/localService/metadata.xml +61 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Employees.json +155 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockdata/Resumes.json +65 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockserver.js +146 -0
- package/test/reuse/ui5/mockserver_qunit/localService/mockserverLoadAllData.js +75 -0
- package/test/reuse/ui5/mockserver_qunit/manifest.json +169 -0
- package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServer.html +63 -0
- package/test/reuse/ui5/mockserver_qunit/test/flpSandboxMockServerAllData.html +68 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/config.js +92 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/qunitExecution/specs/runQUnitTests.spec.js +14 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/data/setup.json +11 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testDisplayNotFound/specs/testDisplayNotFound.spec.js +71 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Employees.json +204 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/mock/Resumes.json +114 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/setup.json +11 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/data/testShowEmployeeList.json +1 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/testShowEmployeeList/specs/testShowEmployeeList.spec.js +118 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/constants.js +25 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockDataMapper.js +23 -0
- package/test/reuse/ui5/mockserver_qunit/test/qmate/ui/utils/mockHelper.js +222 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/allTests.js +6 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/unitTests.qunit.html +38 -0
- package/test/reuse/ui5/mockserver_qunit/test/unit/utils/Conversions.js +13 -0
- package/test/reuse/ui5/mockserver_qunit/view/App.view.xml +9 -0
- package/test/reuse/ui5/mockserver_qunit/view/Home.view.xml +12 -0
- package/test/reuse/ui5/mockserver_qunit/view/NotFound.view.xml +11 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/Employee.view.xml +52 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/EmployeeList.view.xml +24 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/Resume.view.xml +35 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeHobbies.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeNotes.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/ResumeProjects.view.xml +3 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverview.view.xml +13 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewContent.view.xml +43 -0
- package/test/reuse/ui5/mockserver_qunit/view/employee/overview/EmployeeOverviewTop.view.xml +3 -0
- package/test/reuse/ui5/navigation/closePopups.spec.js +16 -0
- package/test/reuse/ui5/navigation/expectUnsupportedNavigationPopup.spec.js +81 -0
- package/test/reuse/ui5/navigation/navigateToApplication.spec.js +148 -0
- package/test/reuse/ui5/navigation/navigateToApplicationAndRetry.spec.js +153 -0
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParams.spec.js +63 -0
- package/test/reuse/ui5/navigation/navigateToApplicationWithQueryParamsAndRetry.spec.js +64 -0
- package/test/reuse/ui5/navigation/navigateToSystemAndApplication.spec.js +45 -0
- package/test/reuse/ui5/navigation/navigateToSystemAndApplicationAndRetry.spec.js +43 -0
- package/test/reuse/ui5/navigation/test.navigation.conf.js +17 -0
- package/test/reuse/ui5/navigation/test.navigation.sauceLab.conf.js +33 -0
- package/test/reuse/ui5/navigation/test.navigation.static.conf.js +34 -0
- package/test/reuse/ui5/navigation/test.navigation.static.sauceLab.conf.js +41 -0
- package/test/reuse/ui5/navigation/website/main.css +36 -0
- package/test/reuse/ui5/navigation/website/main.html +50 -0
- package/test/reuse/ui5/navigationBar/clickBack.spec.js +38 -0
- package/test/reuse/ui5/navigationBar/clickUserIcon.spec.js +36 -0
- package/test/reuse/ui5/navigationBar/expectPageTitle.spec.js +22 -0
- package/test/reuse/ui5/navigationBar/expectShellHeader.spec.js +22 -0
- package/test/reuse/ui5/navigationBar/test.navigationBar.conf.js +17 -0
- package/test/reuse/ui5/navigationBar/test.navigationBar.sauceLab.conf.js +28 -0
- package/test/reuse/ui5/session/login.spec.js +78 -0
- package/test/reuse/ui5/session/loginFiori.spec.js +52 -0
- package/test/reuse/ui5/session/loginSapCloud.spec.js +51 -0
- package/test/reuse/ui5/session/logout.spec.js +48 -0
- package/test/reuse/ui5/session/switchUser.spec.js +48 -0
- package/test/reuse/ui5/session/test.session.conf.js +20 -0
- package/test/reuse/ui5/session/test.session.sauceLab.conf.js +29 -0
- package/test/reuse/ui5/table/clickSettingsButton.spec.js +58 -0
- package/test/reuse/ui5/table/sortColumnAscending.spec.js +84 -0
- package/test/reuse/ui5/table/sortColumnDescending.spec.js +84 -0
- package/test/reuse/ui5/table/test.table.conf.js +14 -0
- package/test/reuse/ui5/table/test.table.sauceLab.conf.js +25 -0
- package/test/reuse/ui5/table/test.table.sauceLab.tunnel.conf.js +25 -0
- package/test/reuse/ui5/userInteraction/clear.spec.js +75 -0
- package/test/reuse/ui5/userInteraction/clearAndFill.spec.js +157 -0
- package/test/reuse/ui5/userInteraction/clearAndFillAndRetry.spec.js +132 -0
- package/test/reuse/ui5/userInteraction/clearAndFillSmartFieldInput.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/clearAndRetry.spec.js +57 -0
- package/test/reuse/ui5/userInteraction/click.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/clickAndRetry.spec.js +52 -0
- package/test/reuse/ui5/userInteraction/clickSelectArrow.spec.js +87 -0
- package/test/reuse/ui5/userInteraction/clickSelectArrowAndRetry.spec.js +147 -0
- package/test/reuse/ui5/userInteraction/clickTab.spec.js +59 -0
- package/test/reuse/ui5/userInteraction/doubleClick.spec.js +73 -0
- package/test/reuse/ui5/userInteraction/dragAndDrop.spec.js +34 -0
- package/test/reuse/ui5/userInteraction/fill.spec.js +114 -0
- package/test/reuse/ui5/userInteraction/fillAndRetry.spec.js +120 -0
- package/test/reuse/ui5/userInteraction/mouseOverElement.spec.js +55 -0
- package/test/reuse/ui5/userInteraction/openF4Help.spec.js +56 -0
- package/test/reuse/ui5/userInteraction/rightClick.spec.js +72 -0
- package/test/reuse/ui5/userInteraction/scrollToElement.spec.js +89 -0
- package/test/reuse/ui5/userInteraction/searchFor.spec.js +155 -0
- package/test/reuse/ui5/userInteraction/selectBox.spec.js +128 -0
- package/test/reuse/ui5/userInteraction/selectCombobox.spec.js +115 -0
- package/test/reuse/ui5/userInteraction/selectMultiComboBox.spec.js +155 -0
- package/test/reuse/ui5/userInteraction/test.userInteraction.conf.js +35 -0
- package/test/reuse/ui5/userInteraction/test.userInteraction.sauceLab.conf.js +46 -0
- package/test/reuse/util/browser/back.spec.js +32 -0
- package/test/reuse/util/browser/clearBrowser.spec.js +35 -0
- package/test/reuse/util/browser/executeScript.spec.js +49 -0
- package/test/reuse/util/browser/getBaseUrl.spec.js +13 -0
- package/test/reuse/util/browser/getBrowserName.spec.js +18 -0
- package/test/reuse/util/browser/getCurrentUrl.spec.js +34 -0
- package/test/reuse/util/browser/getCurrentWindow.spec.js +42 -0
- package/test/reuse/util/browser/getUI5Version.spec.js +31 -0
- package/test/reuse/util/browser/logCurrentUrl.spec.js +23 -0
- package/test/reuse/util/browser/refresh.spec.js +52 -0
- package/test/reuse/util/browser/setBaseUrl.spec.js +13 -0
- package/test/reuse/util/browser/switchToDefaultContent.spec.js +34 -0
- package/test/reuse/util/browser/switchToIframe.spec.js +29 -0
- package/test/reuse/util/browser/switchToNewWindow.spec.js +142 -0
- package/test/reuse/util/browser/switchToWindow.spec.js +57 -0
- package/test/reuse/util/browser/test.browser.conf.js +27 -0
- package/test/reuse/util/data/data/test.json +3 -0
- package/test/reuse/util/data/data/test.secure.json +11 -0
- package/test/reuse/util/data/decrypt.spec.js +15 -0
- package/test/reuse/util/data/getData.spec.js +15 -0
- package/test/reuse/util/data/getSecureData.spec.js +57 -0
- package/test/reuse/util/data/test.data.conf.js +22 -0
- package/test/reuse/util/file/file.spec.js +90 -0
- package/test/reuse/util/file/pdfParser.spec.js +55 -0
- package/test/reuse/util/file/test.file.conf.js +15 -0
- package/test/reuse/util/file/testFiles/sample.pdf +198 -0
- package/test/reuse/util/file/testFiles/test.txt +5 -0
- package/test/reuse/util/file/testFiles/test2.txt +2 -0
- package/test/reuse/util/formatter/addRemoveLeadingZeros.spec.js +38 -0
- package/test/reuse/util/formatter/extractNumberFromString.spec.js +67 -0
- package/test/reuse/util/formatter/formatDate.spec.js +150 -0
- package/test/reuse/util/formatter/sliceStringAfter.spec.js +62 -0
- package/test/reuse/util/formatter/sliceStringAt.spec.js +62 -0
- package/test/reuse/util/formatter/stringifyJSON.spec.js +24 -0
- package/test/reuse/util/formatter/test.formatter.conf.js +20 -0
- package/test/reuse/util/formatter/trimString.spec.js +37 -0
- package/tsconfig.json +26 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @class navigation
|
|
3
|
+
* @memberof nonUi5
|
|
4
|
+
*/
|
|
5
|
+
export declare class Navigation {
|
|
6
|
+
/**
|
|
7
|
+
* @function navigateToApplication
|
|
8
|
+
* @memberOf nonUi5.navigation
|
|
9
|
+
* @description Navigates to the application via the passed relative reference. The path will be added to the baseUrl maintained in the config.
|
|
10
|
+
* @param {String} relativeReference - Relative reference of an application (path, query and fragment)
|
|
11
|
+
* @param {Boolean} [refresh=true] - Refresh the page after navigation.
|
|
12
|
+
* @example await nonUi5.navigation.navigateToApplication("categories");
|
|
13
|
+
*/
|
|
14
|
+
navigateToApplication(relativeReference: string, refresh?: boolean): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
declare const _default: Navigation;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Navigation = void 0;
|
|
13
|
+
/**
|
|
14
|
+
* @class navigation
|
|
15
|
+
* @memberof nonUi5
|
|
16
|
+
*/
|
|
17
|
+
class Navigation {
|
|
18
|
+
/**
|
|
19
|
+
* @function navigateToApplication
|
|
20
|
+
* @memberOf nonUi5.navigation
|
|
21
|
+
* @description Navigates to the application via the passed relative reference. The path will be added to the baseUrl maintained in the config.
|
|
22
|
+
* @param {String} relativeReference - Relative reference of an application (path, query and fragment)
|
|
23
|
+
* @param {Boolean} [refresh=true] - Refresh the page after navigation.
|
|
24
|
+
* @example await nonUi5.navigation.navigateToApplication("categories");
|
|
25
|
+
*/
|
|
26
|
+
navigateToApplication(relativeReference, refresh = true) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
try {
|
|
29
|
+
yield browser.navigateTo(`${browser.config.baseUrl}/${relativeReference}`);
|
|
30
|
+
yield util.browser.logCurrentUrl();
|
|
31
|
+
if (refresh) {
|
|
32
|
+
yield util.browser.refresh();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
throw new Error("Function navigateToApplication failed: " + error);
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
;
|
|
41
|
+
}
|
|
42
|
+
exports.Navigation = Navigation;
|
|
43
|
+
exports.default = new Navigation();
|
|
44
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/reuse/modules/nonUi5/navigation.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AAEb;;;GAGG;AACH,MAAa,UAAU;IAErB;;;;;;;OAOG;IACI,qBAAqB,CAAC,iBAAyB,EAAE,OAAO,GAAG,IAAI;;YACpE,IAAI;gBACF,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,iBAAiB,EAAE,CAAC,CAAC;gBAC3E,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBACnC,IAAI,OAAO,EAAE;oBACX,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;iBAC9B;aACF;YAAC,OAAO,KAAK,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,yCAAyC,GAAG,KAAK,CAAC,CAAC;aACpE;QACH,CAAC;KAAA;IAAA,CAAC;CACH;AArBD,gCAqBC;AACD,kBAAe,IAAI,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Element } from "../../../../@types/wdio";
|
|
2
|
+
import { AlignmentValues } from "./constants/userInteraction.constants";
|
|
3
|
+
/**
|
|
4
|
+
* @class userInteraction
|
|
5
|
+
* @memberof nonUi5
|
|
6
|
+
*/
|
|
7
|
+
export declare class UserInteraction {
|
|
8
|
+
/**
|
|
9
|
+
* @function click
|
|
10
|
+
* @memberOf nonUi5.userInteraction
|
|
11
|
+
* @description Clicks on the passed element.
|
|
12
|
+
* @param {Object} element - The element.
|
|
13
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
14
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
15
|
+
* await nonUi5.userInteraction.click(elem);
|
|
16
|
+
*/
|
|
17
|
+
click(element: Element, timeout?: string | number): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* @function clickAndRetry
|
|
20
|
+
* @memberOf nonUi5.userInteraction
|
|
21
|
+
* @description Clicks on the passed element, retries in case it fails.
|
|
22
|
+
* @param {Object} element - The element.
|
|
23
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
24
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
25
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
26
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
27
|
+
* await nonUi5.userInteraction.clickAndRetry(elem);
|
|
28
|
+
*/
|
|
29
|
+
clickAndRetry(element: Element, timeout?: string | number, retries?: number, interval?: number): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* @function doubleClick
|
|
32
|
+
* @memberOf nonUi5.userInteraction
|
|
33
|
+
* @description Double Clicks on the passed element.
|
|
34
|
+
* @param {Object} element - The element.
|
|
35
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
36
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
37
|
+
* await nonUi5.userInteraction.doubleClick(elem);
|
|
38
|
+
*/
|
|
39
|
+
doubleClick(element: Element, timeout?: string | number): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* @function rightClick
|
|
42
|
+
* @memberOf nonUi5.userInteraction
|
|
43
|
+
* @description Right Clicks on the passed element.
|
|
44
|
+
* @param {Object} element - The element.
|
|
45
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
46
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
47
|
+
* await nonUi5.userInteraction.rightClick(elem);
|
|
48
|
+
*/
|
|
49
|
+
rightClick(element: Element, timeout?: string | number): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* @function fill
|
|
52
|
+
* @memberOf nonUi5.userInteraction
|
|
53
|
+
* @description Fills the given value into the passed input.
|
|
54
|
+
* @param {Object} element - The element.
|
|
55
|
+
* @param {String} value - The value to be filled.
|
|
56
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
57
|
+
* await nonUi5.userInteraction.fill(elem, "Service 01");
|
|
58
|
+
*/
|
|
59
|
+
fill(element: Element, value: string): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* @function fillAndRetry
|
|
62
|
+
* @memberOf nonUi5.userInteraction
|
|
63
|
+
* @description Fills the given value into the passed input, retries in case of a failure.
|
|
64
|
+
* @param {Object} element - The element.
|
|
65
|
+
* @param {String} value - The value to be filled.
|
|
66
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
67
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
68
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
69
|
+
* await nonUi5.userInteraction.fillAndRetry(elem, "Service 01");
|
|
70
|
+
*/
|
|
71
|
+
fillAndRetry(element: Element, value: string, retries?: number, interval?: number): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* @function clear
|
|
74
|
+
* @memberOf nonUi5.userInteraction
|
|
75
|
+
* @description Clears the passed input element.
|
|
76
|
+
* @param {Object} element - The element.
|
|
77
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
78
|
+
* await nonUi5.userInteraction.clear(elem);
|
|
79
|
+
*/
|
|
80
|
+
clear(element: Element): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* @function clearAndRetry
|
|
83
|
+
* @memberOf nonUi5.userInteraction
|
|
84
|
+
* @description Clears the passed input element, retries in case of a failure.
|
|
85
|
+
* @param {Object} element - The element.
|
|
86
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
87
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
88
|
+
* @example const elem = await nonUi5.element.getById("input01", 10000);
|
|
89
|
+
* await nonUi5.userInteraction.clearAndRetry(elem);
|
|
90
|
+
*/
|
|
91
|
+
clearAndRetry(element: Element, retries?: number, interval?: number): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* @function clearAndFill
|
|
94
|
+
* @memberOf nonUi5.userInteraction
|
|
95
|
+
* @description Clears and fills the passed input element.
|
|
96
|
+
* @param {Object} element - The element.
|
|
97
|
+
* @param {String} value - The value to be filled in.
|
|
98
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
99
|
+
* await nonUi5.userInteraction.clearAndFill(elem, "Service 01");
|
|
100
|
+
*/
|
|
101
|
+
clearAndFill(element: Element, value: string): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* @function clearAndFillAndRetry
|
|
104
|
+
* @memberOf nonUi5.userInteraction
|
|
105
|
+
* @description Clears and fills the passed input, retries in case it fails.
|
|
106
|
+
* @param {Object} element - The element.
|
|
107
|
+
* @param {String} value - The value to be filled in.
|
|
108
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
109
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
110
|
+
* @param {Boolean} [verify=true] - Specifies if the filled value should be verified.
|
|
111
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
112
|
+
* await nonUi5.userInteraction.clearAndFillAndRetry(elem, "Service 01");
|
|
113
|
+
*/
|
|
114
|
+
clearAndFillAndRetry(element: Element, value: string, retries?: number, interval?: number, verify?: boolean): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* @function mouseOverElement
|
|
117
|
+
* @memberOf nonUi5.userInteraction
|
|
118
|
+
* @description Moves the cursor/focus to the passed element.
|
|
119
|
+
* @param {Object} element - The selector describing the element.
|
|
120
|
+
* @param {Number} [xOffset] - X offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
|
|
121
|
+
* @param {Number} [yOffset] - Y offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
|
|
122
|
+
* @example const elem = await nonUi5.element.getById("dropdown42");
|
|
123
|
+
* await nonUi5.userInteraction.mouseOverElement(elem);
|
|
124
|
+
*/
|
|
125
|
+
mouseOverElement(elem: Element, xOffset: number, yOffset: number): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* @function scrollToElement
|
|
128
|
+
* @memberOf nonUi5.userInteraction
|
|
129
|
+
* @description Scrolls to the passed element to get it into view.
|
|
130
|
+
* @param {Object} elem - The element.
|
|
131
|
+
* @param {String} alignment="center" - Defines vertical/horizontal alignment. One of "start", "center", "end", or "nearest".
|
|
132
|
+
* Affects the alignToTop parameter of scrollIntoView function. By default, it takes 'up'
|
|
133
|
+
* @example const elem = await nonUi5.userInteraction.getElementById("footer01");
|
|
134
|
+
* await nonUi5.userInteraction.scrollToElement(elem);
|
|
135
|
+
*/
|
|
136
|
+
scrollToElement(elem: Element, alignment?: AlignmentValues): Promise<void>;
|
|
137
|
+
/**
|
|
138
|
+
* @function dragAndDrop
|
|
139
|
+
* @memberOf nonUi5.userInteraction
|
|
140
|
+
* @description Drags and drops the given element to the given target element.
|
|
141
|
+
* @param {Object} element - The element to drag.
|
|
142
|
+
* @param {Object} targetElem - The target element to drop the element.
|
|
143
|
+
* @example const elem = await nonUi5.element.getById("drag01");
|
|
144
|
+
* @example const targetElem = await nonUi5.element.getById("drop02");
|
|
145
|
+
* await nonUi5.userInteraction.dragAndDrop(elem, targetElem);
|
|
146
|
+
*/
|
|
147
|
+
dragAndDrop(element: Element, targetElem: Element): Promise<void>;
|
|
148
|
+
/**
|
|
149
|
+
* @function moveCursorAndClick
|
|
150
|
+
* @memberOf nonUi5.userInteraction
|
|
151
|
+
* @description Moves the cursor to the target element and clicks on it. Can be used for charts.
|
|
152
|
+
* @param {Object} element - The element to be clicked.
|
|
153
|
+
* @example const elem = await nonUi5.element.getById("chartPartToClick");
|
|
154
|
+
* await nonUi5.userInteraction.moveCursorAndClick(elem);
|
|
155
|
+
*/
|
|
156
|
+
moveCursorAndClick(element: Element): Promise<void>;
|
|
157
|
+
/**
|
|
158
|
+
* @function clickElementInSvg
|
|
159
|
+
* @memberOf nonUi5.userInteraction
|
|
160
|
+
* @description Clicks on an inner element within a SVG element.
|
|
161
|
+
* @param {Object} svgElem - The SVG element.
|
|
162
|
+
* @param {String} innerSelector - The CSS selector describing the inner element to be clicked.
|
|
163
|
+
* @example const svgElem = await nonUi5.element.getByCss("svg");
|
|
164
|
+
* const innerSelector = "circle:nth-child(6)";
|
|
165
|
+
* await nonUi5.userInteraction.clickElementInSvg(svgElem, innerSelector);
|
|
166
|
+
*/
|
|
167
|
+
clickElementInSvg(svgElem: Element, innerSelector: string): Promise<void>;
|
|
168
|
+
}
|
|
169
|
+
declare const _default: UserInteraction;
|
|
170
|
+
export default _default;
|
|
@@ -0,0 +1,415 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.UserInteraction = void 0;
|
|
13
|
+
const userInteraction_constants_1 = require("./constants/userInteraction.constants");
|
|
14
|
+
/**
|
|
15
|
+
* @class userInteraction
|
|
16
|
+
* @memberof nonUi5
|
|
17
|
+
*/
|
|
18
|
+
class UserInteraction {
|
|
19
|
+
// =================================== CLICK ===================================
|
|
20
|
+
/**
|
|
21
|
+
* @function click
|
|
22
|
+
* @memberOf nonUi5.userInteraction
|
|
23
|
+
* @description Clicks on the passed element.
|
|
24
|
+
* @param {Object} element - The element.
|
|
25
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
26
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
27
|
+
* await nonUi5.userInteraction.click(elem);
|
|
28
|
+
*/
|
|
29
|
+
click(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
yield Promise.all([
|
|
32
|
+
expect(element).toBeDisplayed({
|
|
33
|
+
wait: timeout,
|
|
34
|
+
interval: 100,
|
|
35
|
+
message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
|
|
36
|
+
}),
|
|
37
|
+
expect(element).toBeEnabled({
|
|
38
|
+
wait: timeout,
|
|
39
|
+
interval: 100,
|
|
40
|
+
message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
|
|
41
|
+
})
|
|
42
|
+
]);
|
|
43
|
+
try {
|
|
44
|
+
yield element.click();
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const errorMessage = yield util.function.mapWdioErrorToQmateErrorMessage(error, "click");
|
|
48
|
+
throw new Error(errorMessage);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
;
|
|
53
|
+
/**
|
|
54
|
+
* @function clickAndRetry
|
|
55
|
+
* @memberOf nonUi5.userInteraction
|
|
56
|
+
* @description Clicks on the passed element, retries in case it fails.
|
|
57
|
+
* @param {Object} element - The element.
|
|
58
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
59
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
60
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
61
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
62
|
+
* await nonUi5.userInteraction.clickAndRetry(elem);
|
|
63
|
+
*/
|
|
64
|
+
clickAndRetry(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000, retries = 3, interval = 5000) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
if (!element) {
|
|
67
|
+
throw new Error("Function 'clearAndRetry' failed. Please provide an element as first argument.");
|
|
68
|
+
}
|
|
69
|
+
return util.function.retry(this.click, [element, timeout], retries, interval, this);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
;
|
|
73
|
+
/**
|
|
74
|
+
* @function doubleClick
|
|
75
|
+
* @memberOf nonUi5.userInteraction
|
|
76
|
+
* @description Double Clicks on the passed element.
|
|
77
|
+
* @param {Object} element - The element.
|
|
78
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
79
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
80
|
+
* await nonUi5.userInteraction.doubleClick(elem);
|
|
81
|
+
*/
|
|
82
|
+
doubleClick(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
+
yield Promise.all([
|
|
85
|
+
expect(element).toBeDisplayed({
|
|
86
|
+
wait: timeout,
|
|
87
|
+
interval: 100,
|
|
88
|
+
message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
|
|
89
|
+
}),
|
|
90
|
+
expect(element).toBeEnabled({
|
|
91
|
+
wait: timeout,
|
|
92
|
+
interval: 100,
|
|
93
|
+
message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
|
|
94
|
+
})
|
|
95
|
+
]);
|
|
96
|
+
try {
|
|
97
|
+
yield element.doubleClick();
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
const errorMessage = yield util.function.mapWdioErrorToQmateErrorMessage(error, "doubleClick");
|
|
101
|
+
throw new Error(errorMessage);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
;
|
|
106
|
+
/**
|
|
107
|
+
* @function rightClick
|
|
108
|
+
* @memberOf nonUi5.userInteraction
|
|
109
|
+
* @description Right Clicks on the passed element.
|
|
110
|
+
* @param {Object} element - The element.
|
|
111
|
+
* @param {Number} [timeout=30000] - The timeout to wait (ms).
|
|
112
|
+
* @example const elem = await nonUi5.element.getById("button01");
|
|
113
|
+
* await nonUi5.userInteraction.rightClick(elem);
|
|
114
|
+
*/
|
|
115
|
+
rightClick(element, timeout = process.env.QMATE_CUSTOM_TIMEOUT || 30000) {
|
|
116
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
117
|
+
yield Promise.all([
|
|
118
|
+
expect(element).toBeDisplayed({
|
|
119
|
+
wait: timeout,
|
|
120
|
+
interval: 100,
|
|
121
|
+
message: `Timeout '${+timeout / 1000}s' by waiting for element is displayed.`
|
|
122
|
+
}),
|
|
123
|
+
expect(element).toBeEnabled({
|
|
124
|
+
wait: timeout,
|
|
125
|
+
interval: 100,
|
|
126
|
+
message: `Timeout '${+timeout / 1000}s' by waiting for element is enabled.`
|
|
127
|
+
})
|
|
128
|
+
]);
|
|
129
|
+
try {
|
|
130
|
+
yield element.click({
|
|
131
|
+
button: "right"
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
const errorMessage = yield util.function.mapWdioErrorToQmateErrorMessage(error, "rightClick");
|
|
136
|
+
throw new Error(errorMessage);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
;
|
|
141
|
+
// =================================== FILL ===================================
|
|
142
|
+
/**
|
|
143
|
+
* @function fill
|
|
144
|
+
* @memberOf nonUi5.userInteraction
|
|
145
|
+
* @description Fills the given value into the passed input.
|
|
146
|
+
* @param {Object} element - The element.
|
|
147
|
+
* @param {String} value - The value to be filled.
|
|
148
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
149
|
+
* await nonUi5.userInteraction.fill(elem, "Service 01");
|
|
150
|
+
*/
|
|
151
|
+
fill(element, value) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
try {
|
|
154
|
+
yield element.setValue(value);
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
// @ts-ignore
|
|
158
|
+
if (error.message && error.message.match(new RegExp(/(invalid element state|element not interactable)/))) {
|
|
159
|
+
const errorMessage = yield util.function.mapWdioErrorToQmateErrorMessage(error, "fill");
|
|
160
|
+
throw new Error(errorMessage);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
if (!value) {
|
|
164
|
+
throw new Error("Function 'fill' failed: Please provide a value as second argument: " + error);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
throw error;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
;
|
|
174
|
+
/**
|
|
175
|
+
* @function fillAndRetry
|
|
176
|
+
* @memberOf nonUi5.userInteraction
|
|
177
|
+
* @description Fills the given value into the passed input, retries in case of a failure.
|
|
178
|
+
* @param {Object} element - The element.
|
|
179
|
+
* @param {String} value - The value to be filled.
|
|
180
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
181
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
182
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
183
|
+
* await nonUi5.userInteraction.fillAndRetry(elem, "Service 01");
|
|
184
|
+
*/
|
|
185
|
+
fillAndRetry(element, value, retries = 3, interval = 5000) {
|
|
186
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
187
|
+
if (!element || (value === null || value === undefined || value === "")) {
|
|
188
|
+
throw new Error("Function 'fillAndRetry' failed: Please provide an element and value as arguments.");
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
return util.function.retry(this.fill, [element, value], retries, interval, this);
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
;
|
|
196
|
+
// =================================== CLEAR ===================================
|
|
197
|
+
/**
|
|
198
|
+
* @function clear
|
|
199
|
+
* @memberOf nonUi5.userInteraction
|
|
200
|
+
* @description Clears the passed input element.
|
|
201
|
+
* @param {Object} element - The element.
|
|
202
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
203
|
+
* await nonUi5.userInteraction.clear(elem);
|
|
204
|
+
*/
|
|
205
|
+
clear(element) {
|
|
206
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
207
|
+
if (!element) {
|
|
208
|
+
throw new Error("Function 'clear' failed: Please provide an element as first argument.");
|
|
209
|
+
}
|
|
210
|
+
return element.clearValue();
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
;
|
|
214
|
+
/**
|
|
215
|
+
* @function clearAndRetry
|
|
216
|
+
* @memberOf nonUi5.userInteraction
|
|
217
|
+
* @description Clears the passed input element, retries in case of a failure.
|
|
218
|
+
* @param {Object} element - The element.
|
|
219
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
220
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
221
|
+
* @example const elem = await nonUi5.element.getById("input01", 10000);
|
|
222
|
+
* await nonUi5.userInteraction.clearAndRetry(elem);
|
|
223
|
+
*/
|
|
224
|
+
clearAndRetry(element, retries = 3, interval = 5000) {
|
|
225
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
226
|
+
if (!element) {
|
|
227
|
+
throw new Error("Function 'clearAndRetry' failed: Please provide an element as first argument.");
|
|
228
|
+
}
|
|
229
|
+
return util.function.retry(this.clear, [element], retries, interval, this);
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
;
|
|
233
|
+
/**
|
|
234
|
+
* @function clearAndFill
|
|
235
|
+
* @memberOf nonUi5.userInteraction
|
|
236
|
+
* @description Clears and fills the passed input element.
|
|
237
|
+
* @param {Object} element - The element.
|
|
238
|
+
* @param {String} value - The value to be filled in.
|
|
239
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
240
|
+
* await nonUi5.userInteraction.clearAndFill(elem, "Service 01");
|
|
241
|
+
*/
|
|
242
|
+
clearAndFill(element, value) {
|
|
243
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
244
|
+
//arg. 'value' needs to be checked in case of numeric values. E.g.: 0 or 1 will be handled as boolean value in if.
|
|
245
|
+
if (!element || (value === null || value === undefined || value === "")) {
|
|
246
|
+
throw new Error("Function 'clearAndFill' failed: Please provide an element and value as arguments.");
|
|
247
|
+
}
|
|
248
|
+
else {
|
|
249
|
+
try {
|
|
250
|
+
yield this.clear(element);
|
|
251
|
+
yield element.setValue(value);
|
|
252
|
+
}
|
|
253
|
+
catch (error) {
|
|
254
|
+
throw new Error(`Function 'clearAndFill' failed: ${error}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
;
|
|
260
|
+
/**
|
|
261
|
+
* @function clearAndFillAndRetry
|
|
262
|
+
* @memberOf nonUi5.userInteraction
|
|
263
|
+
* @description Clears and fills the passed input, retries in case it fails.
|
|
264
|
+
* @param {Object} element - The element.
|
|
265
|
+
* @param {String} value - The value to be filled in.
|
|
266
|
+
* @param {Number} [retries=3] - The number of retries, can be set in config for all functions under params stepsRetries.
|
|
267
|
+
* @param {Number} [interval=5000] - The delay between the retries (ms). Can be set in config for all functions under params.stepRetriesIntervals.
|
|
268
|
+
* @param {Boolean} [verify=true] - Specifies if the filled value should be verified.
|
|
269
|
+
* @example const elem = await nonUi5.element.getById("input01");
|
|
270
|
+
* await nonUi5.userInteraction.clearAndFillAndRetry(elem, "Service 01");
|
|
271
|
+
*/
|
|
272
|
+
clearAndFillAndRetry(element, value, retries = 3, interval = 5000, verify = true) {
|
|
273
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
274
|
+
return util.function.retry((elem, value) => __awaiter(this, void 0, void 0, function* () {
|
|
275
|
+
yield this.clearAndFill(elem, value);
|
|
276
|
+
if (verify) {
|
|
277
|
+
const elemValue = yield elem.getValue();
|
|
278
|
+
if (elemValue != value)
|
|
279
|
+
throw new Error("Function 'clearAndFillAndRetry' failed. Verification of value failed.");
|
|
280
|
+
}
|
|
281
|
+
}), [element, value], retries, interval, this);
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
;
|
|
285
|
+
// =================================== OTHERS ===================================
|
|
286
|
+
/**
|
|
287
|
+
* @function mouseOverElement
|
|
288
|
+
* @memberOf nonUi5.userInteraction
|
|
289
|
+
* @description Moves the cursor/focus to the passed element.
|
|
290
|
+
* @param {Object} element - The selector describing the element.
|
|
291
|
+
* @param {Number} [xOffset] - X offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
|
|
292
|
+
* @param {Number} [yOffset] - Y offset to move to, relative to the top-left corner of the element. If not specified, the mouse will move to the middle of the element.
|
|
293
|
+
* @example const elem = await nonUi5.element.getById("dropdown42");
|
|
294
|
+
* await nonUi5.userInteraction.mouseOverElement(elem);
|
|
295
|
+
*/
|
|
296
|
+
mouseOverElement(elem, xOffset, yOffset) {
|
|
297
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
298
|
+
try {
|
|
299
|
+
yield elem.moveTo({ xOffset, yOffset });
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
// @ts-ignore
|
|
303
|
+
throw new Error("Function: 'mouseOverElement' failed: ", error);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
;
|
|
308
|
+
/**
|
|
309
|
+
* @function scrollToElement
|
|
310
|
+
* @memberOf nonUi5.userInteraction
|
|
311
|
+
* @description Scrolls to the passed element to get it into view.
|
|
312
|
+
* @param {Object} elem - The element.
|
|
313
|
+
* @param {String} alignment="center" - Defines vertical/horizontal alignment. One of "start", "center", "end", or "nearest".
|
|
314
|
+
* Affects the alignToTop parameter of scrollIntoView function. By default, it takes 'up'
|
|
315
|
+
* @example const elem = await nonUi5.userInteraction.getElementById("footer01");
|
|
316
|
+
* await nonUi5.userInteraction.scrollToElement(elem);
|
|
317
|
+
*/
|
|
318
|
+
scrollToElement(elem, alignment = userInteraction_constants_1.AlignmentValues.CENTER) {
|
|
319
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
320
|
+
const options = {
|
|
321
|
+
"block": alignment,
|
|
322
|
+
"inline": alignment
|
|
323
|
+
};
|
|
324
|
+
yield elem.scrollIntoView(options);
|
|
325
|
+
});
|
|
326
|
+
}
|
|
327
|
+
;
|
|
328
|
+
/**
|
|
329
|
+
* @function dragAndDrop
|
|
330
|
+
* @memberOf nonUi5.userInteraction
|
|
331
|
+
* @description Drags and drops the given element to the given target element.
|
|
332
|
+
* @param {Object} element - The element to drag.
|
|
333
|
+
* @param {Object} targetElem - The target element to drop the element.
|
|
334
|
+
* @example const elem = await nonUi5.element.getById("drag01");
|
|
335
|
+
* @example const targetElem = await nonUi5.element.getById("drop02");
|
|
336
|
+
* await nonUi5.userInteraction.dragAndDrop(elem, targetElem);
|
|
337
|
+
*/
|
|
338
|
+
dragAndDrop(element, targetElem) {
|
|
339
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
340
|
+
// await element.dragAndDrop(targetElem);
|
|
341
|
+
const sourceSize = yield element.getSize();
|
|
342
|
+
const targetSize = yield targetElem.getSize();
|
|
343
|
+
const sourceLocation = yield element.getLocation();
|
|
344
|
+
const targetLocation = yield targetElem.getLocation();
|
|
345
|
+
// Get centers of elements to move from center to center (e.g. to avoid errors in rounded elements)
|
|
346
|
+
const sourceCenterLocation = {
|
|
347
|
+
x: +Number(sourceSize.width / 2).toFixed(0) + +Number(sourceLocation.x).toFixed(0) + 1,
|
|
348
|
+
y: +Number(sourceSize.height / 2).toFixed(0) + +Number(sourceLocation.y).toFixed(0) + 1
|
|
349
|
+
};
|
|
350
|
+
const targetCenterLocation = {
|
|
351
|
+
x: +Number(targetSize.width / 2).toFixed(0) + +Number(targetLocation.x).toFixed(0) + 1,
|
|
352
|
+
y: +Number(targetSize.height / 2).toFixed(0) + +Number(targetLocation.y).toFixed(0) + 1
|
|
353
|
+
};
|
|
354
|
+
yield browser.performActions([
|
|
355
|
+
{
|
|
356
|
+
type: "pointer",
|
|
357
|
+
id: "finger1",
|
|
358
|
+
parameters: { pointerType: "mouse" },
|
|
359
|
+
actions: [
|
|
360
|
+
{ type: "pointerMove", duration: 0, x: sourceCenterLocation.x, y: sourceCenterLocation.y },
|
|
361
|
+
{ type: "pointerDown", button: 0 },
|
|
362
|
+
{ type: "pointerMove", duration: 0, x: targetCenterLocation.x, y: targetCenterLocation.y },
|
|
363
|
+
{ type: "pointerUp", button: 0 },
|
|
364
|
+
],
|
|
365
|
+
},
|
|
366
|
+
]);
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
;
|
|
370
|
+
/**
|
|
371
|
+
* @function moveCursorAndClick
|
|
372
|
+
* @memberOf nonUi5.userInteraction
|
|
373
|
+
* @description Moves the cursor to the target element and clicks on it. Can be used for charts.
|
|
374
|
+
* @param {Object} element - The element to be clicked.
|
|
375
|
+
* @example const elem = await nonUi5.element.getById("chartPartToClick");
|
|
376
|
+
* await nonUi5.userInteraction.moveCursorAndClick(elem);
|
|
377
|
+
*/
|
|
378
|
+
moveCursorAndClick(element) {
|
|
379
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
380
|
+
yield element.moveTo();
|
|
381
|
+
yield element.click();
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
;
|
|
385
|
+
/**
|
|
386
|
+
* @function clickElementInSvg
|
|
387
|
+
* @memberOf nonUi5.userInteraction
|
|
388
|
+
* @description Clicks on an inner element within a SVG element.
|
|
389
|
+
* @param {Object} svgElem - The SVG element.
|
|
390
|
+
* @param {String} innerSelector - The CSS selector describing the inner element to be clicked.
|
|
391
|
+
* @example const svgElem = await nonUi5.element.getByCss("svg");
|
|
392
|
+
* const innerSelector = "circle:nth-child(6)";
|
|
393
|
+
* await nonUi5.userInteraction.clickElementInSvg(svgElem, innerSelector);
|
|
394
|
+
*/
|
|
395
|
+
clickElementInSvg(svgElem, innerSelector) {
|
|
396
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
397
|
+
const innerElem = yield $(innerSelector);
|
|
398
|
+
const svgPos = yield svgElem.getLocation();
|
|
399
|
+
const innerPos = yield innerElem.getLocation();
|
|
400
|
+
const svgSize = yield svgElem.getSize();
|
|
401
|
+
const innerSize = yield innerElem.getSize();
|
|
402
|
+
const diffX = innerPos.x - svgPos.x;
|
|
403
|
+
const diffY = innerPos.y - svgPos.y;
|
|
404
|
+
const centerOffsetX = -(svgSize.width / 2) + diffX + (innerSize.width / 2);
|
|
405
|
+
const centerOffsetY = -(svgSize.height / 2) + diffY + (innerSize.height / 2);
|
|
406
|
+
// @ts-ignore
|
|
407
|
+
yield svgElem.click({ x: parseInt(centerOffsetX), y: parseInt(centerOffsetY) });
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
;
|
|
411
|
+
}
|
|
412
|
+
exports.UserInteraction = UserInteraction;
|
|
413
|
+
;
|
|
414
|
+
exports.default = new UserInteraction();
|
|
415
|
+
//# sourceMappingURL=userInteraction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userInteraction.js","sourceRoot":"","sources":["../../../../src/reuse/modules/nonUi5/userInteraction.ts"],"names":[],"mappings":"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"}
|