summaryrefslogtreecommitdiff
path: root/node_modules/selenium-webdriver/lib/error.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/selenium-webdriver/lib/error.js')
-rw-r--r--node_modules/selenium-webdriver/lib/error.js19
1 files changed, 16 insertions, 3 deletions
diff --git a/node_modules/selenium-webdriver/lib/error.js b/node_modules/selenium-webdriver/lib/error.js
index 555e5cbc5..82f81b07c 100644
--- a/node_modules/selenium-webdriver/lib/error.js
+++ b/node_modules/selenium-webdriver/lib/error.js
@@ -311,7 +311,7 @@ class UnknownMethodError extends WebDriverError {
/**
- * Reports an unsupport operation.
+ * Reports an unsupported operation.
*/
class UnsupportedOperationError extends WebDriverError {
/** @param {string=} opt_error the error message, if any. */
@@ -462,17 +462,29 @@ function checkResponse(data) {
return data;
}
+/**
+ * Tests if the given value is a valid error response object according to the
+ * W3C WebDriver spec.
+ *
+ * @param {?} data The value to test.
+ * @return {boolean} Whether the given value data object is a valid error
+ * response.
+ * @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
+ */
+function isErrorResponse(data) {
+ return data && typeof data === 'object' && typeof data.error === 'string';
+}
/**
* Throws an error coded from the W3C protocol. A generic error will be thrown
- * if the privded `data` is not a valid encoded error.
+ * if the provided `data` is not a valid encoded error.
*
* @param {{error: string, message: string}} data The error data to decode.
* @throws {WebDriverError} the decoded error.
* @see https://w3c.github.io/webdriver/webdriver-spec.html#protocol
*/
function throwDecodedError(data) {
- if (data && typeof data === 'object' && typeof data.error === 'string') {
+ if (isErrorResponse(data)) {
let ctor = ERROR_CODE_TO_TYPE.get(data.error) || WebDriverError;
throw new ctor(data.message);
}
@@ -551,5 +563,6 @@ module.exports = {
checkResponse: checkResponse,
checkLegacyResponse: checkLegacyResponse,
encodeError: encodeError,
+ isErrorResponse: isErrorResponse,
throwDecodedError: throwDecodedError,
};