diff --git a/e2e/TestConstants.ts b/e2e/TestConstants.ts index 6907e1db776..f15f2e13588 100644 --- a/e2e/TestConstants.ts +++ b/e2e/TestConstants.ts @@ -90,9 +90,39 @@ export const TestConstants = { TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME: process.env.TS_SELENIUM_HAPPY_PATH_WORKSPACE_NAME || 'petclinic-dev-environment', /** - * Name of namespace created for 'Install Che' on OCP by OperatorHub UI. + * Catalog tile operator name on OperatorHub UI. */ - TS_INSTALL_CHE_PROJECT_NAME: process.env.TS_INSTALL_CHE_PROJECT_NAME || 'test-che-operator', + TS_SELENIUM_CATALOG_TILE_OPERATOR_NAME: process.env.TS_SELENIUM_CATALOG_TILE_OPERATOR_NAME || 'eclipse-che-preview', + + /** + * Operator logo name by installation using OperatorHub + */ + TS_SELENIUM_OPERATOR_LOGO_NAME: process.env.TS_SELENIUM_OPERATOR_LOGO_NAME || 'Eclipse Che', + + /** + * Name of namespace created on OCP for installation CHE by using OperatorHub UI. + */ + TS_SELENIUM_INSTALL_PROJECT_NAME: process.env.TS_SELENIUM_INSTALL_PROJECT_NAME || 'test-che-operator', + + /** + * OpenShift OAuth field line in 'Create Che Cluster' yaml. + */ + TS_SELENIUM_OPENSHIFT_OAUTH_FIELD_LINE: process.env.TS_SELENIUM_OPENSHIFT_OAUTH_FIELD_LINE || '21', + + /** + * Value of OpenShift OAuth field in the 'Create Che Cluster' yaml using OperatorHub + */ + TS_SELENIUM_VALUE_OPENSHIFT_OAUTH: process.env.TS_SELENIUM_VALUE_OPENSHIFT_OAUTH || 'false', + + /** + * Catalog Source name on Subscription Overview. + */ + TS_SELENIUM_CATALOG_SOURCE_NAME: process.env.TS_SELENIUM_CATALOG_SOURCE_NAME || 'installed-custom', + + /** + * Prefix URL on deployed application by installation using OperatorHub. + */ + TS_SELENIUM_INSTALL_APP_PREFIX_URL: process.env.TS_SELENIUM_INSTALL_APP_PREFIX_URL || 'che', /** * Username used to log in MultiUser Che. @@ -147,7 +177,7 @@ export const TestConstants = { /** * Update Channel name on 'Create Operator Subscription' page on OCP, "nightly" or "stable". */ - TS_OCP_UPDATE_CHANNEL_OPERATOR: process.env.TS_OCP_UPDATE_CHANNEL_OPERATOR || 'nightly', + TS_OCP_OPERATOR_UPDATE_CHANNEL: process.env.TS_OCP_OPERATOR_UPDATE_CHANNEL || 'nightly', /** * Remote driver URL. diff --git a/e2e/package-lock.json b/e2e/package-lock.json index 8c0eb2031fc..63c615981c2 100644 --- a/e2e/package-lock.json +++ b/e2e/package-lock.json @@ -22,9 +22,9 @@ "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "dev": true, "requires": { - "@types/events": "*", - "@types/minimatch": "*", - "@types/node": "*" + "@types/events": "3.0.0", + "@types/minimatch": "3.0.3", + "@types/node": "11.13.4" } }, "@types/minimatch": { @@ -51,8 +51,8 @@ "integrity": "sha512-Hm/bnWq0TCy7jmjeN5bKYij9vw5GrDFWME4IuxV08278NtU/VdGbzsBohcCUJ7+QMqmUq5hpRKB39HeQWJjztQ==", "dev": true, "requires": { - "@types/glob": "*", - "@types/node": "*" + "@types/glob": "7.1.1", + "@types/node": "11.13.4" } }, "@types/selenium-webdriver": { @@ -67,10 +67,10 @@ "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", "dev": true, "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" } }, "ansi-colors": { @@ -91,7 +91,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.3" } }, "arg": { @@ -106,7 +106,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "array-union": { @@ -115,7 +115,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -130,7 +130,7 @@ "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert-plus": { @@ -170,7 +170,7 @@ "dev": true, "requires": { "follow-redirects": "1.5.10", - "is-buffer": "^2.0.2" + "is-buffer": "2.0.3" } }, "babel-code-frame": { @@ -179,9 +179,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" }, "dependencies": { "ansi-regex": { @@ -202,11 +202,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "strip-ansi": { @@ -215,7 +215,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "supports-color": { @@ -238,7 +238,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "brace-expansion": { @@ -247,7 +247,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -287,12 +287,12 @@ "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", "dev": true, "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^3.0.1", - "get-func-name": "^2.0.0", - "pathval": "^1.1.0", - "type-detect": "^4.0.5" + "assertion-error": "1.1.0", + "check-error": "1.0.2", + "deep-eql": "3.0.1", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.8" } }, "chalk": { @@ -301,9 +301,9 @@ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.5.0" }, "dependencies": { "supports-color": { @@ -312,7 +312,7 @@ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -329,11 +329,11 @@ "integrity": "sha512-jGyqs0N+lMo9iaNQxGKNPiLJWb2L9s2rwbRr1jJeQ37n6JQ1+5YMGviv/Fx5Z08vBWYbAvrKEzFsuYf8ppl+lw==", "dev": true, "requires": { - "del": "^4.1.1", - "extract-zip": "^1.6.7", - "mkdirp": "^0.5.1", - "request": "^2.88.0", - "tcp-port-used": "^1.0.1" + "del": "4.1.1", + "extract-zip": "1.6.7", + "mkdirp": "0.5.1", + "request": "2.88.0", + "tcp-port-used": "1.0.1" } }, "cliui": { @@ -342,9 +342,9 @@ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "dev": true, "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "wrap-ansi": "2.1.0" } }, "code-point-at": { @@ -374,7 +374,7 @@ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -395,10 +395,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "core-util-is": { @@ -413,11 +413,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "nice-try": "1.0.5", + "path-key": "2.0.1", + "semver": "5.7.0", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "dashdash": { @@ -426,7 +426,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "debug": { @@ -450,7 +450,7 @@ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", "dev": true, "requires": { - "type-detect": "^4.0.0" + "type-detect": "4.0.8" } }, "deep-is": { @@ -465,7 +465,7 @@ "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "object-keys": "1.1.1" } }, "del": { @@ -474,13 +474,13 @@ "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" + "@types/glob": "7.1.1", + "globby": "6.1.0", + "is-path-cwd": "2.2.0", + "is-path-in-cwd": "2.1.0", + "p-map": "2.1.0", + "pify": "4.0.1", + "rimraf": "2.6.3" }, "dependencies": { "rimraf": { @@ -489,7 +489,7 @@ "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { - "glob": "^7.1.3" + "glob": "7.1.3" } } } @@ -512,8 +512,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "emoji-regex": { @@ -528,7 +528,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "^1.4.0" + "once": "1.4.0" } }, "es-abstract": { @@ -537,12 +537,12 @@ "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-keys": "^1.0.12" + "es-to-primitive": "1.2.0", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.4", + "is-regex": "1.0.4", + "object-keys": "1.1.1" } }, "es-to-primitive": { @@ -551,9 +551,9 @@ "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "1.1.4", + "is-date-object": "1.0.1", + "is-symbol": "1.0.2" } }, "escape-string-regexp": { @@ -580,13 +580,13 @@ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "6.0.5", + "get-stream": "4.1.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" } }, "extend": { @@ -631,7 +631,7 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "~1.2.0" + "pend": "1.2.0" } }, "find-up": { @@ -640,7 +640,7 @@ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "locate-path": "3.0.0" } }, "flat": { @@ -649,7 +649,7 @@ "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==", "dev": true, "requires": { - "is-buffer": "~2.0.3" + "is-buffer": "2.0.3" } }, "follow-redirects": { @@ -658,7 +658,7 @@ "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "dev": true, "requires": { - "debug": "=3.1.0" + "debug": "3.1.0" }, "dependencies": { "debug": { @@ -684,9 +684,9 @@ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "asynckit": "0.4.0", + "combined-stream": "1.0.8", + "mime-types": "2.1.24" } }, "fs.realpath": { @@ -719,7 +719,7 @@ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "pump": "^3.0.0" + "pump": "3.0.0" } }, "getpass": { @@ -728,7 +728,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -737,12 +737,12 @@ "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "globby": { @@ -751,11 +751,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.3", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -784,8 +784,8 @@ "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "dev": true, "requires": { - "ajv": "^6.5.5", - "har-schema": "^2.0.0" + "ajv": "6.10.2", + "har-schema": "2.0.0" } }, "has": { @@ -794,7 +794,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -803,7 +803,7 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" }, "dependencies": { "ansi-regex": { @@ -838,9 +838,9 @@ "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.16.1" } }, "immediate": { @@ -855,8 +855,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -918,7 +918,7 @@ "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, "requires": { - "is-path-inside": "^2.1.0" + "is-path-inside": "2.1.0" } }, "is-path-inside": { @@ -927,7 +927,7 @@ "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, "requires": { - "path-is-inside": "^1.0.2" + "path-is-inside": "1.0.2" } }, "is-regex": { @@ -936,7 +936,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-stream": { @@ -951,7 +951,7 @@ "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "1.0.0" } }, "is-typedarray": { @@ -972,9 +972,9 @@ "integrity": "sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "ip-regex": "^2.1.0", - "is-url": "^1.2.2" + "deep-is": "0.1.3", + "ip-regex": "2.1.0", + "is-url": "1.2.4" } }, "isarray": { @@ -1007,8 +1007,8 @@ "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.1" } }, "jsbn": { @@ -1053,10 +1053,10 @@ "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", "dev": true, "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "lie": "3.3.0", + "pako": "1.0.10", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "lcid": { @@ -1065,7 +1065,7 @@ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "invert-kv": "2.0.0" } }, "lie": { @@ -1074,7 +1074,7 @@ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, "requires": { - "immediate": "~3.0.5" + "immediate": "3.0.6" } }, "locate-path": { @@ -1083,8 +1083,8 @@ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "p-locate": "3.0.0", + "path-exists": "3.0.0" } }, "lodash": { @@ -1099,7 +1099,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "^2.0.1" + "chalk": "2.4.2" } }, "make-error": { @@ -1114,7 +1114,7 @@ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { - "p-defer": "^1.0.0" + "p-defer": "1.0.0" } }, "mem": { @@ -1123,9 +1123,9 @@ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" + "map-age-cleaner": "0.1.3", + "mimic-fn": "2.1.0", + "p-is-promise": "2.1.0" } }, "mime-db": { @@ -1155,7 +1155,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -1210,7 +1210,7 @@ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.1" } }, "ms": { @@ -1239,8 +1239,8 @@ "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==", "dev": true, "requires": { - "object.getownpropertydescriptors": "^2.0.3", - "semver": "^5.7.0" + "object.getownpropertydescriptors": "2.0.3", + "semver": "5.7.0" } }, "npm-run-path": { @@ -1249,7 +1249,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "2.0.1" } }, "number-is-nan": { @@ -1282,10 +1282,10 @@ "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { - "define-properties": "^1.1.2", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.0", - "object-keys": "^1.0.11" + "define-properties": "1.1.3", + "function-bind": "1.1.1", + "has-symbols": "1.0.0", + "object-keys": "1.1.1" } }, "object.getownpropertydescriptors": { @@ -1294,8 +1294,8 @@ "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", "dev": true, "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "define-properties": "1.1.3", + "es-abstract": "1.13.0" } }, "once": { @@ -1304,7 +1304,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "os-locale": { @@ -1313,9 +1313,9 @@ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "execa": "1.0.0", + "lcid": "2.0.0", + "mem": "4.3.0" } }, "os-tmpdir": { @@ -1348,7 +1348,7 @@ "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", "dev": true, "requires": { - "p-try": "^2.0.0" + "p-try": "2.2.0" } }, "p-locate": { @@ -1357,7 +1357,7 @@ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "p-limit": "2.2.0" } }, "p-map": { @@ -1444,7 +1444,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "process-nextick-args": { @@ -1465,8 +1465,8 @@ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" + "end-of-stream": "1.4.1", + "once": "1.4.0" } }, "punycode": { @@ -1487,13 +1487,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "reflect-metadata": { @@ -1507,26 +1507,26 @@ "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "dev": true, "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.8", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.3", + "har-validator": "5.1.3", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.24", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.3" } }, "require-directory": { @@ -1547,7 +1547,7 @@ "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "path-parse": "1.0.6" } }, "rimraf": { @@ -1556,7 +1556,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "^7.0.5" + "glob": "7.1.3" } }, "safe-buffer": { @@ -1583,10 +1583,10 @@ "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", + "jszip": "3.2.2", + "rimraf": "2.6.2", "tmp": "0.0.30", - "xml2js": "^0.4.17" + "xml2js": "0.4.21" } }, "semver": { @@ -1613,7 +1613,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -1640,8 +1640,8 @@ "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "buffer-from": "1.1.1", + "source-map": "0.6.1" } }, "sprintf-js": { @@ -1656,15 +1656,15 @@ "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "string-width": { @@ -1673,8 +1673,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "string_decoder": { @@ -1683,7 +1683,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -1692,7 +1692,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "strip-eof": { @@ -1713,7 +1713,7 @@ "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } }, "tcp-port-used": { @@ -1732,7 +1732,7 @@ "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } }, "ms": { @@ -1749,7 +1749,7 @@ "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dev": true, "requires": { - "os-tmpdir": "~1.0.1" + "os-tmpdir": "1.0.2" } }, "tough-cookie": { @@ -1758,8 +1758,8 @@ "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "dev": true, "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.3.0", + "punycode": "1.4.1" }, "dependencies": { "punycode": { @@ -1776,11 +1776,11 @@ "integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==", "dev": true, "requires": { - "arg": "^4.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" + "arg": "4.1.0", + "diff": "3.5.0", + "make-error": "1.3.5", + "source-map-support": "0.5.12", + "yn": "3.1.0" } }, "tslib": { @@ -1795,18 +1795,18 @@ "integrity": "sha1-EeJrzLiK+gLdDZlWyuPUVAtfVMM=", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^3.2.0", - "glob": "^7.1.1", - "js-yaml": "^3.7.0", - "minimatch": "^3.0.4", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.12.1" + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.4.2", + "commander": "2.20.0", + "diff": "3.5.0", + "glob": "7.1.3", + "js-yaml": "3.13.1", + "minimatch": "3.0.4", + "resolve": "1.11.1", + "semver": "5.7.0", + "tslib": "1.9.3", + "tsutils": "2.29.0" } }, "tsutils": { @@ -1815,7 +1815,7 @@ "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "tslib": "^1.8.1" + "tslib": "1.9.3" } }, "tunnel": { @@ -1830,7 +1830,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -1879,7 +1879,7 @@ "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "punycode": "^2.1.0" + "punycode": "2.1.1" } }, "util-deprecate": { @@ -1900,9 +1900,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "which": { @@ -1911,7 +1911,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -1926,7 +1926,7 @@ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "^1.0.2 || 2" + "string-width": "2.1.1" } }, "wrap-ansi": { @@ -1935,8 +1935,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" }, "dependencies": { "ansi-regex": { @@ -1951,7 +1951,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "string-width": { @@ -1960,9 +1960,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "strip-ansi": { @@ -1971,7 +1971,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } } } @@ -1988,8 +1988,8 @@ "integrity": "sha512-gHRSAYBSA1JNVbLV2l8mTpQ/zTLcNtyG4YZmNlA3pjMWTgv9swW9muK55cr3fUmSOezLTR24iPQ+FqxilTvppw==", "dev": true, "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~13.0.0" + "sax": "1.2.4", + "xmlbuilder": "13.0.2" } }, "xmlbuilder": { @@ -2010,17 +2010,17 @@ "integrity": "sha512-WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==", "dev": true, "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" + "cliui": "4.1.0", + "find-up": "3.0.0", + "get-caller-file": "2.0.5", + "os-locale": "3.1.0", + "require-directory": "2.1.1", + "require-main-filename": "2.0.0", + "set-blocking": "2.0.0", + "string-width": "3.1.0", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "13.0.0" }, "dependencies": { "ansi-regex": { @@ -2035,9 +2035,9 @@ "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "7.0.3", + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "5.2.0" } }, "strip-ansi": { @@ -2046,7 +2046,7 @@ "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "4.1.0" } } } @@ -2057,8 +2057,8 @@ "integrity": "sha512-w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" } }, "yargs-unparser": { @@ -2067,9 +2067,9 @@ "integrity": "sha512-HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==", "dev": true, "requires": { - "flat": "^4.1.0", - "lodash": "^4.17.11", - "yargs": "^12.0.5" + "flat": "4.1.0", + "lodash": "4.17.15", + "yargs": "12.0.5" }, "dependencies": { "get-caller-file": { @@ -2090,18 +2090,18 @@ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "cliui": "4.1.0", + "decamelize": "1.2.0", + "find-up": "3.0.0", + "get-caller-file": "1.0.3", + "os-locale": "3.1.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "4.0.0", + "yargs-parser": "11.1.1" } }, "yargs-parser": { @@ -2110,8 +2110,8 @@ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "camelcase": "5.3.1", + "decamelize": "1.2.0" } } } @@ -2122,7 +2122,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "~1.0.1" + "fd-slicer": "1.0.1" } }, "yn": { diff --git a/e2e/pageobjects/openshift/OcpWebConsolePage.ts b/e2e/pageobjects/openshift/OcpWebConsolePage.ts index 499f10d9080..d0fc6f06825 100644 --- a/e2e/pageobjects/openshift/OcpWebConsolePage.ts +++ b/e2e/pageobjects/openshift/OcpWebConsolePage.ts @@ -18,8 +18,8 @@ import { Logger } from '../../utils/Logger'; @injectable() export class OcpWebConsolePage { - private static readonly CHE_OPERATOR_LOGO_NAME: string = '//h1[text()=\'Eclipse Che\']'; - private static readonly ECLIPSE_CHE_PREFIX_URL: string = 'che-'; + private static readonly OPERATOR_LOGO_NAME_XPATH: string = `//h1[text()='${TestConstants.TS_SELENIUM_OPERATOR_LOGO_NAME}']`; + private static readonly INSTALLED_APP_URL_XPATH: string = `${TestConstants.TS_SELENIUM_INSTALL_APP_PREFIX_URL}-${TestConstants.TS_SELENIUM_INSTALL_PROJECT_NAME}`; constructor( @inject(CLASSES.DriverHelper) private readonly driverHelper: DriverHelper) { } @@ -52,17 +52,18 @@ export class OcpWebConsolePage { await this.driverHelper.waitVisibility(catalogOperatorHubPageLocator); } - async clickOnEclipseCheOperatorIcon() { - Logger.debug('OcpWebConsolePage.clickOnEclipseCheOperatorIcon'); + async clickOnCatalogOperatorIcon() { + Logger.debug('OcpWebConsolePage.clickOnCatalogOperatorIcon'); - const catalogEclipseCheOperatorTitleLocator: By = By.css('a[data-test^=eclipse-che-preview-openshift]'); - await this.driverHelper.waitAndClick(catalogEclipseCheOperatorTitleLocator, TestConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT); + const catalogTileOperatorNameCss: string = `${TestConstants.TS_SELENIUM_CATALOG_TILE_OPERATOR_NAME}`; + const catalogTileOperatorNameLocator: By = By.css(`a[data-test^=${catalogTileOperatorNameCss}]`); + await this.driverHelper.waitAndClick(catalogTileOperatorNameLocator, TestConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT); } - async clickOnInstallEclipseCheButton() { - Logger.debug('OcpWebConsolePage.clickOnInstallEclipseCheButton'); + async clickOnInstallButton() { + Logger.debug('OcpWebConsolePage.clickOnInstallButton'); - const installEclipsCheOperatorButtonLocator: By = By.xpath('//button[text()=\'Install\']'); - await this.driverHelper.waitAndClick(installEclipsCheOperatorButtonLocator); + const installOperatorButtonLocator: By = By.xpath('//button[text()=\'Install\']'); + await this.driverHelper.waitAndClick(installOperatorButtonLocator); } async waitCreateOperatorSubscriptionPage() { @@ -72,10 +73,10 @@ export class OcpWebConsolePage { await this.driverHelper.waitVisibility(createOperatorSubscriptionPageLocator); } - async selectUpdateChannelOnSubscriptionPage(channelName: string) { - Logger.debug(`OcpWebConsolePage.selectUpdateChannelOnSubscriptionPage "${channelName}"`); + async selectUpdateChannelOnSubscriptionPage() { + Logger.debug('OcpWebConsolePage.selectUpdateChannelOnSubscriptionPage'); - const updateChannelOperatorLocator: By = By.css(`input[value=${channelName}]`); + const updateChannelOperatorLocator: By = By.css(`input[value=${TestConstants.TS_OCP_OPERATOR_UPDATE_CHANNEL}]`); await this.driverHelper.waitAndClick(updateChannelOperatorLocator); } @@ -93,10 +94,11 @@ export class OcpWebConsolePage { await this.driverHelper.waitVisibility(listBoxNamespaceLocator); } - async selectDefinedNamespaceOnSubscriptionPage(projectName: string) { + async selectDefinedNamespaceOnSubscriptionPage() { Logger.debug('OcpWebConsolePage.selectDefinedNamespaceOnSubscriptionPage'); - const namespaceItemInDropDownLocator: By = By.id(`${projectName}-Project-link`); + const namespaceItemInDropDownId: string = `${TestConstants.TS_SELENIUM_INSTALL_PROJECT_NAME}-Project-link`; + const namespaceItemInDropDownLocator: By = By.id(namespaceItemInDropDownId); await this.driverHelper.waitAndClick(namespaceItemInDropDownLocator); } @@ -114,10 +116,10 @@ export class OcpWebConsolePage { await this.driverHelper.waitVisibility(subscriptionOverviewPageLocator); } - async waitChannelNameOnSubscriptionOverviewPage(channelName: string) { - Logger.debug(`OcpWebConsolePage.waitChannelNameOnSubscriptionOverviewPage "${channelName}"`); + async waitChannelNameOnSubscriptionOverviewPage() { + Logger.debug('OcpWebConsolePage.waitChannelNameOnSubscriptionOverviewPage'); - const channelNameOnSubscriptionOverviewLocator: By = By.xpath(`//button[@type='button' and text()='${channelName}']`); + const channelNameOnSubscriptionOverviewLocator: By = By.xpath(`//button[@type='button' and text()='${TestConstants.TS_OCP_OPERATOR_UPDATE_CHANNEL}']`); await this.driverHelper.waitVisibility(channelNameOnSubscriptionOverviewLocator); } @@ -128,10 +130,11 @@ export class OcpWebConsolePage { await this.driverHelper.waitVisibility(upgradeStatuslocator, TestConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT); } - async waitCatalogSourceNameOnSubscriptionOverviewPage(projectName: string) { - Logger.debug(`OcpWebConsolePage.waitCatalogSourceNameOnSubscriptionOverviewPage "${projectName}"`); + async waitCatalogSourceNameOnSubscriptionOverviewPage() { + Logger.debug('OcpWebConsolePage.waitCatalogSourceNameOnSubscriptionOverviewPage'); - const catalogSourceNameLolcator: By = By.css(`a[title=\'installed-custom-${projectName}\']`); + const catalogSourceNameCss: string = `${TestConstants.TS_SELENIUM_CATALOG_SOURCE_NAME}-${TestConstants.TS_SELENIUM_INSTALL_PROJECT_NAME}`; + const catalogSourceNameLolcator: By = By.css(`a[title='${catalogSourceNameCss}']`); await this.driverHelper.waitVisibility(catalogSourceNameLolcator); } @@ -142,29 +145,29 @@ export class OcpWebConsolePage { await this.driverHelper.waitAndClick(installedOperatorsItemNavPanelLocator); } - async waitEclipseCheOperatorLogoName() { - Logger.debug('OcpWebConsolePage.waitEclipseCheOperatorLogoName'); + async waitInstalledOperatorLogoName() { + Logger.debug('OcpWebConsolePage.waitInstalledOperatorLogoName'); - await this.driverHelper.waitVisibility(By.xpath(OcpWebConsolePage.CHE_OPERATOR_LOGO_NAME)); + await this.driverHelper.waitVisibility(By.xpath(OcpWebConsolePage.OPERATOR_LOGO_NAME_XPATH)); } - async waitStatusInstalledEclipseCheOperator() { - Logger.debug('OcpWebConsolePage.waitStatusInstalledEclipseCheOperator'); + async waitStatusInstalledOperator() { + Logger.debug('OcpWebConsolePage.waitStatusInstalledOperator'); - const statusInstalledCheOperatorLocator: By = By.xpath('//span[text()=\'InstallSucceeded\']'); - await this.driverHelper.waitVisibility(statusInstalledCheOperatorLocator, TestConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT); + const statusInstalledOperatorLocator: By = By.xpath('//span[text()=\'InstallSucceeded\']'); + await this.driverHelper.waitVisibility(statusInstalledOperatorLocator, TestConstants.TS_SELENIUM_LOAD_PAGE_TIMEOUT); } - async clickOnEclipseCheOperatorLogoName() { - Logger.debug('OcpWebConsolePage.clickOnEclipseCheOperatorLogoName'); + async clickOnInstalledOperatorLogoName() { + Logger.debug('OcpWebConsolePage.clickOnInstalledOperatorLogoName'); - await this.driverHelper.waitAndClick(By.xpath(OcpWebConsolePage.CHE_OPERATOR_LOGO_NAME)); + await this.driverHelper.waitAndClick(By.xpath(OcpWebConsolePage.OPERATOR_LOGO_NAME_XPATH)); } async waitOverviewCsvEclipseCheOperator() { Logger.debug('OcpWebConsolePage.waitOverviewCsvEclipseCheOperator'); - await this.driverHelper.waitVisibility(By.xpath(OcpWebConsolePage.CHE_OPERATOR_LOGO_NAME)); + await this.driverHelper.waitVisibility(By.xpath(OcpWebConsolePage.OPERATOR_LOGO_NAME_XPATH)); } async clickCreateNewCheClusterLink() { @@ -181,18 +184,20 @@ export class OcpWebConsolePage { await this.driverHelper.waitVisibility(createCheClusterYamlLocator); } - async selectOpenShiftOAuthFieldInYaml(line: string) { - Logger.debug(`OcpWebConsolePage.selectOpenShiftOAuthFieldInYaml line: "${line}"`); + async selectOpenShiftOAuthFieldInYaml() { + Logger.debug('OcpWebConsolePage.selectOpenShiftOAuthFieldInYaml'); - const openShiftOAuthFieldLocator: By = By.xpath(`//div[@class=\'ace_gutter-cell \' and text()=\'${line}\']`); - await this.driverHelper.waitAndClick(openShiftOAuthFieldLocator); + const openShiftOAuthLineLocator: By = By.xpath(`//div[@class=\'ace_gutter-cell \' and text()=\'${TestConstants.TS_SELENIUM_OPENSHIFT_OAUTH_FIELD_LINE}\']`); + await this.driverHelper.waitAndClick(openShiftOAuthLineLocator); } - async changeValueOpenShiftOAuthField() { - Logger.debug('OcpWebConsolePage.changeValueOpenShiftOAuthField'); + async setValueOpenShiftOAuthField() { + Logger.debug('OcpWebConsolePage.setValueOpenShiftOAuthField'); - await this.driverHelper.getAction().sendKeys(Key.DELETE.toString()).sendKeys(Key.ENTER.toString()).sendKeys(Key.UP.toString()).perform(); - await this.driverHelper.getAction().sendKeys(' openShiftoAuth: false'); + const openShiftOAuthEditorLocator: By = By.css('textarea[class=\'ace_text-input\']'); + await this.driverHelper.clearInvisible(openShiftOAuthEditorLocator); + await this.driverHelper.typeToInvisible(openShiftOAuthEditorLocator, ` openShiftoAuth: ${TestConstants.TS_SELENIUM_VALUE_OPENSHIFT_OAUTH}`); + await this.driverHelper.typeToInvisible(openShiftOAuthEditorLocator, Key.ENTER); } async clickOnCreateCheClusterButton() { @@ -223,31 +228,24 @@ export class OcpWebConsolePage { await this.driverHelper.waitAndClick(cheClusterResourcesNameLocator); } - async clickCheClusterOverviewExpandButton() { - Logger.debug('OcpWebConsolePage.clickCheClusterOverviewExpandButton'); - - const cheClusterOverviewExpandButton: By = By.css('label[class=\'btn compaction-btn btn-default\']'); - await this.driverHelper.waitAndClick(cheClusterOverviewExpandButton); - } - - async waitKeycloakAdminConsoleUrl(projectName: string) { + async waitKeycloakAdminConsoleUrl() { Logger.debug('OcpWebConsolePage.waitKeycloakAdminConsoleUrl'); - const keyCloakAdminWebConsoleUrl: By = By.partialLinkText(`keycloak-${projectName}`); + const keyCloakAdminWebConsoleUrl: By = By.partialLinkText(`keycloak-${TestConstants.TS_SELENIUM_INSTALL_PROJECT_NAME}`); await this.driverHelper.waitVisibility(keyCloakAdminWebConsoleUrl, TestConstants.TS_SELENIUM_INSTALL_ECLIPSE_CHE_TIMEOUT); } - async waitEclipseCheUrl(projectName: string) { - Logger.debug('OcpWebConsolePage.waitEclipseCheUrl'); + async waitInstalledAppUrl() { + Logger.debug('OcpWebConsolePage.waitInstalledAppUrl'); - const eclipseCheUrlLocator: By = By.partialLinkText(`${OcpWebConsolePage.ECLIPSE_CHE_PREFIX_URL}${projectName}`); - await this.driverHelper.waitVisibility(eclipseCheUrlLocator, TestConstants.TS_SELENIUM_INSTALL_ECLIPSE_CHE_TIMEOUT); + const installedAppUrlLocator: By = By.partialLinkText(`${OcpWebConsolePage.INSTALLED_APP_URL_XPATH}`); + await this.driverHelper.waitVisibility(installedAppUrlLocator, TestConstants.TS_SELENIUM_INSTALL_ECLIPSE_CHE_TIMEOUT); } - async clickOnEclipseCHeUrl(projectName: string) { - Logger.debug('OcpWebConsolePage.clickOnEclipseCHeUrl'); + async clickOnInstalledAppUrl() { + Logger.debug('OcpWebConsolePage.clickOnInstalledAppUrl'); - const eclipseCheUrlLocator: By = By.partialLinkText(`${OcpWebConsolePage.ECLIPSE_CHE_PREFIX_URL}${projectName}`); - await this.driverHelper.waitAndClick(eclipseCheUrlLocator); + const installedAppUrlLocator: By = By.partialLinkText(`${OcpWebConsolePage.INSTALLED_APP_URL_XPATH}`); + await this.driverHelper.waitAndClick(installedAppUrlLocator); } } diff --git a/e2e/tests/e2e_install_che_operatorhub/InstallCheByOperatorHub.spec.ts b/e2e/tests/e2e_install_che_operatorhub/InstallCheByOperatorHub.spec.ts index 4653a83f1c7..39ea665ffad 100644 --- a/e2e/tests/e2e_install_che_operatorhub/InstallCheByOperatorHub.spec.ts +++ b/e2e/tests/e2e_install_che_operatorhub/InstallCheByOperatorHub.spec.ts @@ -12,7 +12,6 @@ import { e2eContainer } from '../../inversify.config'; import { ICheLoginPage } from '../../pageobjects/login/ICheLoginPage'; import { IOcpLoginPage } from '../../pageobjects/login/IOcpLoginPage'; import { CLASSES, TYPES } from '../../inversify.types'; -import { TestConstants } from '../../TestConstants'; import { Dashboard } from '../../pageobjects/dashboard/Dashboard'; import { OcpLoginPage } from '../../pageobjects/openshift/OcpLoginPage'; import { OcpWebConsolePage } from '../../pageobjects/openshift/OcpWebConsolePage'; @@ -22,9 +21,6 @@ const ocpLogin: IOcpLoginPage = e2eContainer.get(TYPES.OcpLogin); const ocpLoginPage: OcpLoginPage = e2eContainer.get(CLASSES.OcpLoginPage); const ocpWebConsole: OcpWebConsolePage = e2eContainer.get(CLASSES.OcpWebConsolePage); const dashboard: Dashboard = e2eContainer.get(CLASSES.Dashboard); -const projectName: string = TestConstants.TS_INSTALL_CHE_PROJECT_NAME; -const channelName = TestConstants.TS_OCP_UPDATE_CHANNEL_OPERATOR; -const openShiftOAuthLine = '21'; suite('E2E', async () => { @@ -38,7 +34,7 @@ suite('E2E', async () => { }); }); - suite('Subscribe Eclipse Che Operator to defined namespace', async () => { + suite('Subscribe Operator to defined namespace', async () => { test('Open Catalog, select OperatorHub', async () => { await ocpWebConsole.waitNavpanelOpenShift(); await ocpWebConsole.clickOnCatalogListNavPanelOpenShift(); @@ -47,42 +43,42 @@ suite('E2E', async () => { }); - test('Select eclipse Che Operator and install it', async () => { - await ocpWebConsole.clickOnEclipseCheOperatorIcon(); - await ocpWebConsole.clickOnInstallEclipseCheButton(); + test('Select Operator from catalog and install it', async () => { + await ocpWebConsole.clickOnCatalogOperatorIcon(); + await ocpWebConsole.clickOnInstallButton(); }); - test('Select a namespace and subscribe Eclipse Che Operator', async () => { + test('Select a namespace and subscribe Operator', async () => { await ocpWebConsole.waitCreateOperatorSubscriptionPage(); - await ocpWebConsole.selectUpdateChannelOnSubscriptionPage(channelName); + await ocpWebConsole.selectUpdateChannelOnSubscriptionPage(); await ocpWebConsole.clickOnDropdownNamespaceListOnSubscriptionPage(); await ocpWebConsole.waitListBoxNamespacesOnSubscriptionPage(); - await ocpWebConsole.selectDefinedNamespaceOnSubscriptionPage(projectName); + await ocpWebConsole.selectDefinedNamespaceOnSubscriptionPage(); await ocpWebConsole.clickOnSubscribeButtonOnSubscriptionPage(); }); test('Wait the Subscription Overview', async () => { await ocpWebConsole.waitSubscriptionOverviewPage(); - await ocpWebConsole.waitChannelNameOnSubscriptionOverviewPage(channelName); + await ocpWebConsole.waitChannelNameOnSubscriptionOverviewPage(); await ocpWebConsole.waitUpgradeStatusOnSubscriptionOverviewPage(); - await ocpWebConsole.waitCatalogSourceNameOnSubscriptionOverviewPage(projectName); + await ocpWebConsole.waitCatalogSourceNameOnSubscriptionOverviewPage(); }); }); - suite('Wait the Eclipse Che operator is represented by CSV', async () => { + suite('Wait the operator is represented by CSV', async () => { test('Select the Installed Operators in the nav panel', async () => { await ocpWebConsole.selectInstalledOperatorsOnNavPanel(); }); - test('Wait installed Eclipse Che operator', async () => { - await ocpWebConsole.waitEclipseCheOperatorLogoName(); - await ocpWebConsole.waitStatusInstalledEclipseCheOperator(); + test('Wait installed Operator', async () => { + await ocpWebConsole.waitInstalledOperatorLogoName(); + await ocpWebConsole.waitStatusInstalledOperator(); }); }); - suite('Create new Eclipse Che cluster', async () => { - test('Click on the logo-name Eclipse Che operator', async () => { - await ocpWebConsole.clickOnEclipseCheOperatorLogoName(); + suite('Create new Che cluster', async () => { + test('Click on the logo-name Che operator', async () => { + await ocpWebConsole.clickOnInstalledOperatorLogoName(); await ocpWebConsole.waitOverviewCsvEclipseCheOperator(); }); @@ -92,9 +88,9 @@ suite('E2E', async () => { await ocpWebConsole.waitCreateCheClusterYaml(); }); - test('Change value of OpenShiftOauth field', async () => { - await ocpWebConsole.selectOpenShiftOAuthFieldInYaml(openShiftOAuthLine); - await ocpWebConsole.changeValueOpenShiftOAuthField(); + test('Set value of OpenShiftOauth field', async () => { + await ocpWebConsole.selectOpenShiftOAuthFieldInYaml(); + await ocpWebConsole.setValueOpenShiftOAuthField(); }); test('Create Che Cluster ', async () => { @@ -105,27 +101,26 @@ suite('E2E', async () => { }); }); - suite('Check the Eclipse Che is ready', async () => { + suite('Check the Che is ready', async () => { test('Wait Keycloak Admin Console URL', async () => { - await ocpWebConsole.clickCheClusterOverviewExpandButton(); - await ocpWebConsole.waitKeycloakAdminConsoleUrl(projectName); + await ocpWebConsole.waitKeycloakAdminConsoleUrl(); }); - test('Wait Eclipse Che URL', async () => { - await ocpWebConsole.waitEclipseCheUrl(projectName); + test('Wait installed application URL', async () => { + await ocpWebConsole.waitInstalledAppUrl(); }); }); - suite('Log into Eclipse Che', async () => { - test('Click on the Eclipse Che URL ', async () => { - await ocpWebConsole.clickOnEclipseCHeUrl(projectName); + suite('Log into installed application', async () => { + test('Click on the insatalled application URL ', async () => { + await ocpWebConsole.clickOnInstalledAppUrl(); }); - test('Login to Eclipse Che', async () => { + test('Login to application', async () => { await cheLogin.login(); }); - test('Wait Eclipse Che dashboard', async () => { + test('Wait application dashboard', async () => { await dashboard.waitPage(); }); }); diff --git a/e2e/utils/DriverHelper.ts b/e2e/utils/DriverHelper.ts index 05b7f0273a6..2725d9f35f4 100644 --- a/e2e/utils/DriverHelper.ts +++ b/e2e/utils/DriverHelper.ts @@ -380,6 +380,31 @@ export class DriverHelper { throw new error.TimeoutError(`Exceeded maximum clearing attempts, to the '${elementLocator}' element`); } + public async clearInvisible(elementLocator: By, timeout: number = TestConstants.TS_SELENIUM_DEFAULT_TIMEOUT) { + const attempts: number = TestConstants.TS_SELENIUM_DEFAULT_ATTEMPTS; + const polling: number = TestConstants.TS_SELENIUM_DEFAULT_POLLING; + + Logger.trace(`DriverHelper.clearInvisible ${elementLocator}`); + + for (let i = 0; i < attempts; i++) { + const element: WebElement = await this.waitPresence(elementLocator, timeout); + + try { + await element.clear(); + return; + } catch (err) { + if (err instanceof error.StaleElementReferenceError) { + await this.wait(polling); + continue; + } + + throw err; + } + } + + throw new error.TimeoutError(`Exceeded maximum clearing attempts, to the '${elementLocator}' element`); + } + public async enterValue(elementLocator: By, text: string, timeout: number = TestConstants.TS_SELENIUM_DEFAULT_TIMEOUT) { Logger.trace(`DriverHelper.enterValue ${elementLocator} text: ${text}`);