UNPKG

@browserstack/testcafe

Version:

Automated browser testing for the modern web development stack.

87 lines 12.9 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); // ------------------------------------------------------------- // WARNING: this file is used by both the client and the server. // Do not use any browser or node-specific API! // ------------------------------------------------------------- const type_1 = __importDefault(require("./type")); const RAW_API_JS_EXPRESSION_TYPE = 'js-expr'; function isCommandRejectableByPageError(command) { return !isObservationCommand(command) && !isBrowserManipulationCommand(command) && !isServiceCommand(command) || isResizeWindowCommand(command) && !isWindowSwitchingCommand(command); } exports.isCommandRejectableByPageError = isCommandRejectableByPageError; function isClientFunctionCommand(command) { return command.type === type_1.default.executeClientFunction || command.type === type_1.default.executeSelector; } function isObservationCommand(command) { return isClientFunctionCommand(command) || command.type === type_1.default.wait || command.type === type_1.default.assertion || command.type === type_1.default.executeExpression; } function isWindowSwitchingCommand(command) { return command.type === type_1.default.switchToIframe || command.type === type_1.default.switchToMainWindow; } function canSetDebuggerBreakpointBeforeCommand(command) { return command.type !== type_1.default.debug && !isClientFunctionCommand(command) && !isServiceCommand(command); } exports.canSetDebuggerBreakpointBeforeCommand = canSetDebuggerBreakpointBeforeCommand; function isScreenshotCommand(command) { return command.type === type_1.default.takeScreenshot || command.type === type_1.default.takeElementScreenshot || command.type === type_1.default.takeScreenshotOnFail; } exports.isScreenshotCommand = isScreenshotCommand; function isResizeWindowCommand(command) { return command.type === type_1.default.resizeWindow || command.type === type_1.default.resizeWindowToFitDevice || command.type === type_1.default.maximizeWindow; } exports.isResizeWindowCommand = isResizeWindowCommand; function isBrowserManipulationCommand(command) { return isScreenshotCommand(command) || isResizeWindowCommand(command); } exports.isBrowserManipulationCommand = isBrowserManipulationCommand; function isServiceCommand(command) { return command.type === type_1.default.testDone || command.type === type_1.default.showAssertionRetriesStatus || command.type === type_1.default.hideAssertionRetriesStatus || command.type === type_1.default.setBreakpoint || command.type === type_1.default.takeScreenshotOnFail || command.type === type_1.default.recorder; } exports.isServiceCommand = isServiceCommand; function isExecutableInTopWindowOnly(command) { return command.type === type_1.default.testDone || command.type === type_1.default.switchToMainWindow || command.type === type_1.default.setNativeDialogHandler || command.type === type_1.default.getNativeDialogHistory || command.type === type_1.default.setTestSpeed || command.type === type_1.default.showAssertionRetriesStatus || command.type === type_1.default.hideAssertionRetriesStatus || command.type === type_1.default.setBreakpoint || isBrowserManipulationCommand(command) && command.type !== type_1.default.takeElementScreenshot; } exports.isExecutableInTopWindowOnly = isExecutableInTopWindowOnly; function isJSExpression(val) { return val !== null && typeof val === 'object' && val.type === RAW_API_JS_EXPRESSION_TYPE && typeof val.value === 'string'; } exports.isJSExpression = isJSExpression; function isExecutableOnClientCommand(command) { return command.type !== type_1.default.wait && command.type !== type_1.default.setPageLoadTimeout && command.type !== type_1.default.debug && command.type !== type_1.default.useRole && command.type !== type_1.default.assertion && command.type !== type_1.default.executeExpression && command.type !== type_1.default.executeAsyncExpression; } exports.isExecutableOnClientCommand = isExecutableOnClientCommand; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC1ydW4vY29tbWFuZHMvdXRpbHMuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBZ0U7QUFDaEUsZ0VBQWdFO0FBQ2hFLCtDQUErQztBQUMvQyxnRUFBZ0U7QUFDaEUsa0RBQTBCO0FBRTFCLE1BQU0sMEJBQTBCLEdBQUcsU0FBUyxDQUFDO0FBRTdDLFNBQWdCLDhCQUE4QixDQUFFLE9BQU87SUFDbkQsT0FBTyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUM7UUFDdEcscUJBQXFCLENBQUMsT0FBTyxDQUFDO2VBQzNCLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUpELHdFQUlDO0FBRUQsU0FBUyx1QkFBdUIsQ0FBRSxPQUFPO0lBQ3JDLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMscUJBQXFCO1FBQzNDLE9BQU8sQ0FBQyxJQUFJLEtBQUssY0FBSSxDQUFDLGVBQWUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBRSxPQUFPO0lBQ2xDLE9BQU8sdUJBQXVCLENBQUMsT0FBTyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxJQUFJLEtBQUssY0FBSSxDQUFDLElBQUk7UUFDMUIsT0FBTyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsU0FBUztRQUMvQixPQUFPLENBQUMsSUFBSSxLQUFLLGNBQUksQ0FBQyxpQkFBaUIsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBRSxPQUFPO0lBQ3RDLE9BQU8sT0FBTyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssY0FBSSxDQUFDLGtCQUFrQixDQUFDO0FB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SSxDQUFDLE9BQU87UUFDN0IsT0FBTyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsU0FBUztRQUMvQixPQUFPLENBQUMsSUFBSSxLQUFLLGNBQUksQ0FBQyxpQkFBaUI7UUFDdkMsT0FBTyxDQUFDLElBQUksS0FBSyxjQUFJLENBQUMsc0JBQXNCLENBQUM7QUFDeEQsQ0FBQztBQVJELGtFQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gV0FSTklORzogdGhpcyBmaWxlIGlzIHVzZWQgYnkgYm90aCB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyLlxuLy8gRG8gbm90IHVzZSBhbnkgYnJvd3NlciBvciBub2RlLXNwZWNpZmljIEFQSSFcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmltcG9ydCBUWVBFIGZyb20gJy4vdHlwZSc7XG5cbmNvbnN0IFJBV19BUElfSlNfRVhQUkVTU0lPTl9UWVBFID0gJ2pzLWV4cHInO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNDb21tYW5kUmVqZWN0YWJsZUJ5UGFnZUVycm9yIChjb21tYW5kKSB7XG4gICAgcmV0dXJuICFpc09ic2VydmF0aW9uQ29tbWFuZChjb21tYW5kKSAmJiAhaXNCcm93c2VyTWFuaXB1bGF0aW9uQ29tbWFuZChjb21tYW5kKSAmJiAhaXNTZXJ2aWNlQ29tbWFuZChjb21tYW5kKSB8fFxuICAgICAgICAgICBpc1Jlc2l6ZVdpbmRvd0NvbW1hbmQoY29tbWFuZClcbiAgICAgICAgICAgJiYgIWlzV2luZG93U3dpdGNoaW5nQ29tbWFuZChjb21tYW5kKTtcbn1cblxuZnVuY3Rpb24gaXNDbGllbnRGdW5jdGlvbkNvbW1hbmQgKGNvbW1hbmQpIHtcbiAgICByZXR1cm4gY29tbWFuZC50eXBlID09PSBUWVBFLmV4ZWN1dGVDbGllbnRGdW5jdGlvbiB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUuZXhlY3V0ZVNlbGVjdG9yO1xufVxuXG5mdW5jdGlvbiBpc09ic2VydmF0aW9uQ29tbWFuZCAoY29tbWFuZCkge1xuICAgIHJldHVybiBpc0NsaWVudEZ1bmN0aW9uQ29tbWFuZChjb21tYW5kKSB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUud2FpdCB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUuYXNzZXJ0aW9uIHx8XG4gICAgICAgICAgIGNvbW1hbmQudHlwZSA9PT0gVFlQRS5leGVjdXRlRXhwcmVzc2lvbjtcbn1cblxuZnVuY3Rpb24gaXNXaW5kb3dTd2l0Y2hpbmdDb21tYW5kIChjb21tYW5kKSB7XG4gICAgcmV0dXJuIGNvbW1hbmQudHlwZSA9PT0gVFlQRS5zd2l0Y2hUb0lmcmFtZSB8fCBjb21tYW5kLnR5cGUgPT09IFRZUEUuc3dpdGNoVG9NYWluV2luZG93O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FuU2V0RGVidWdnZXJCcmVha3BvaW50QmVmb3JlQ29tbWFuZCAoY29tbWFuZCkge1xuICAgIHJldHVybiBjb21tYW5kLnR5cGUgIT09IFRZUEUuZGVidWcgJiYgIWlzQ2xpZW50RnVuY3Rpb25Db21tYW5kKGNvbW1hbmQpICYmICFpc1NlcnZpY2VDb21tYW5kKGNvbW1hbmQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTY3JlZW5zaG90Q29tbWFuZCAoY29tbWFuZCkge1xuICAgIHJldHVybiBjb21tYW5kLnR5cGUgPT09IFRZUEUudGFrZVNjcmVlbnNob3QgfHxcbiAgICAgICAgICAgY29tbWFuZC50eXBlID09PSBUWVBFLnRha2VFbGVtZW50U2NyZWVuc2hvdCB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUudGFrZVNjcmVlbnNob3RPbkZhaWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Jlc2l6ZVdpbmRvd0NvbW1hbmQgKGNvbW1hbmQpIHtcbiAgICByZXR1cm4gY29tbWFuZC50eXBlID09PSBUWVBFLnJlc2l6ZVdpbmRvdyB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUucmVzaXplV2luZG93VG9GaXREZXZpY2UgfHxcbiAgICAgICAgICAgY29tbWFuZC50eXBlID09PSBUWVBFLm1heGltaXplV2luZG93O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNCcm93c2VyTWFuaXB1bGF0aW9uQ29tbWFuZCAoY29tbWFuZCkge1xuICAgIHJldHVybiBpc1NjcmVlbnNob3RDb21tYW5kKGNvbW1hbmQpIHx8IGlzUmVzaXplV2luZG93Q29tbWFuZChjb21tYW5kKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VydmljZUNvbW1hbmQgKGNvbW1hbmQpIHtcbiAgICByZXR1cm4gY29tbWFuZC50eXBlID09PSBUWVBFLnRlc3REb25lIHx8XG4gICAgICAgICAgIGNvbW1hbmQudHlwZSA9PT0gVFlQRS5zaG93QXNzZXJ0aW9uUmV0cmllc1N0YXR1cyB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUuaGlkZUFzc2VydGlvblJldHJpZXNTdGF0dXMgfHxcbiAgICAgICAgICAgY29tbWFuZC50eXBlID09PSBUWVBFLnNldEJyZWFrcG9pbnQgfHxcbiAgICAgICAgICAgY29tbWFuZC50eXBlID09PSBUWVBFLnRha2VTY3JlZW5zaG90T25GYWlsIHx8XG4gICAgICAgICAgIGNvbW1hbmQudHlwZSA9PT0gVFlQRS5yZWNvcmRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRXhlY3V0YWJsZUluVG9wV2luZG93T25seSAoY29tbWFuZCkge1xuICAgIHJldHVybiBjb21tYW5kLnR5cGUgPT09IFRZUEUudGVzdERvbmUgfHxcbiAgICAgICAgICAgY29tbWFuZC50eXBlID09PSBUWVBFLnN3aXRjaFRvTWFpbldpbmRvdyB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUuc2V0TmF0aXZlRGlhbG9nSGFuZGxlciB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUuZ2V0TmF0aXZlRGlhbG9nSGlzdG9yeSB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUuc2V0VGVzdFNwZWVkIHx8XG4gICAgICAgICAgIGNvbW1hbmQudHlwZSA9PT0gVFlQRS5zaG93QXNzZXJ0aW9uUmV0cmllc1N0YXR1cyB8fFxuICAgICAgICAgICBjb21tYW5kLnR5cGUgPT09IFRZUEUuaGlkZUFzc2VydGlvblJldHJpZXNTdGF0dXMgfHxcbiAgICAgICAgICAgY29tbWFuZC50eXBlID09PSBUWVBFLnNldEJyZWFrcG9pbnQgfHxcbiAgICAgICAgICAgaXNCcm93c2VyTWFuaXB1bGF0aW9uQ29tbWFuZChjb21tYW5kKSAmJiBjb21tYW5kLnR5cGUgIT09IFRZUEUudGFrZUVsZW1lbnRTY3JlZW5zaG90O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNKU0V4cHJlc3Npb24gKHZhbCkge1xuICAgIHJldHVybiB2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsLnR5cGUgPT09IFJBV19BUElfSlNfRVhQUkVTU0lPTl9UWVBFICYmXG4gICAgICAgICAgIHR5cGVvZiB2YWwudmFsdWUgPT09ICdzdHJpbmcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNFeGVjdXRhYmxlT25DbGllbnRDb21tYW5kIChjb21tYW5kKSB7XG4gICAgcmV0dXJuIGNvbW1hbmQudHlwZSAhPT0gVFlQRS53YWl0ICYmXG4gICAgICAgICAgIGNvbW1hbmQudHlwZSAhPT0gVFlQRS5zZXRQYWdlTG9hZFRpbWVvdXQgJiZcbiAgICAgICAgICAgY29tbWFuZC50eXBlICE9PSBUWVBFLmRlYnVnICYmXG4gICAgICAgICAgIGNvbW1hbmQudHlwZSAhPT0gVFlQRS51c2VSb2xlICYmXG4gICAgICAgICAgIGNvbW1hbmQudHlwZSAhPT0gVFlQRS5hc3NlcnRpb24gJiZcbiAgICAgICAgICAgY29tbWFuZC50eXBlICE9PSBUWVBFLmV4ZWN1dGVFeHByZXNzaW9uICYmXG4gICAgICAgICAgIGNvbW1hbmQudHlwZSAhPT0gVFlQRS5leGVjdXRlQXN5bmNFeHByZXNzaW9uO1xufVxuIl19