testcafe
Version:
Automated browser testing for the modern web development stack.
80 lines • 10.6 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const type_1 = __importDefault(require("./type"));
const actions_1 = require("./actions");
const assertion_1 = __importDefault(require("./assertion"));
const browser_manipulation_1 = require("./browser-manipulation");
const observation_1 = require("./observation");
function getCmdCtor(type) {
switch (type) {
case type_1.default.click:
return actions_1.ClickCommand;
case type_1.default.rightClick:
return actions_1.RightClickCommand;
case type_1.default.doubleClick:
return actions_1.DoubleClickCommand;
case type_1.default.hover:
return actions_1.HoverCommand;
case type_1.default.drag:
return actions_1.DragCommand;
case type_1.default.dragToElement:
return actions_1.DragToElementCommand;
case type_1.default.typeText:
return actions_1.TypeTextCommand;
case type_1.default.selectText:
return actions_1.SelectTextCommand;
case type_1.default.selectTextAreaContent:
return actions_1.SelectTextAreaContentCommand;
case type_1.default.selectEditableContent:
return actions_1.SelectEditableContentCommand;
case type_1.default.pressKey:
return actions_1.PressKeyCommand;
case type_1.default.wait:
return observation_1.WaitCommand;
case type_1.default.navigateTo:
return actions_1.NavigateToCommand;
case type_1.default.setFilesToUpload:
return actions_1.SetFilesToUploadCommand;
case type_1.default.clearUpload:
return actions_1.ClearUploadCommand;
case type_1.default.takeScreenshot:
return browser_manipulation_1.TakeScreenshotCommand;
case type_1.default.takeElementScreenshot:
return browser_manipulation_1.TakeElementScreenshotCommand;
case type_1.default.resizeWindow:
return browser_manipulation_1.ResizeWindowCommand;
case type_1.default.resizeWindowToFitDevice:
return browser_manipulation_1.ResizeWindowToFitDeviceCommand;
case type_1.default.maximizeWindow:
return browser_manipulation_1.MaximizeWindowCommand;
case type_1.default.switchToIframe:
return actions_1.SwitchToIframeCommand;
case type_1.default.switchToMainWindow:
return actions_1.SwitchToMainWindowCommand;
case type_1.default.setNativeDialogHandler:
return actions_1.SetNativeDialogHandlerCommand;
case type_1.default.setTestSpeed:
return actions_1.SetTestSpeedCommand;
case type_1.default.setPageLoadTimeout:
return actions_1.SetPageLoadTimeoutCommand;
case type_1.default.assertion:
return assertion_1.default;
case type_1.default.debug:
return observation_1.DebugCommand;
case type_1.default.executeExpression:
return actions_1.ExecuteExpressionCommand;
default:
return null;
}
}
// Create command from object
function createCommandFromObject(obj, testRun) {
const CmdCtor = getCmdCtor(obj.type);
return CmdCtor && new CmdCtor(obj, testRun);
}
exports.default = createCommandFromObject;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1vYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdC1ydW4vY29tbWFuZHMvZnJvbS1vYmplY3QuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFFMUIsdUNBcUJtQjtBQUVuQiw0REFBMkM7QUFFM0MsaUVBTWdDO0FBRWhDLCtDQUEwRDtBQUUxRCxTQUFTLFVBQVUsQ0FBRSxJQUFJO0lBQ3JCLFFBQVEsSUFBSSxFQUFFO1FBQ1YsS0FBSyxjQUFJLENBQUMsS0FBSztZQUNYLE9BQU8sc0JBQVksQ0FBQztRQUV4QixLQUFLLGNBQUksQ0FBQyxVQUFVO1lBQ2hCLE9BQU8sMkJBQWlCLENBQUM7UUFFN0IsS0FBSyxjQUFJLENBQUMsV0FBVztZQUNqQixPQUFPLDRCQUFrQixDQUFDO1FBRTlCLEtBQUssY0FBSSxDQUFDLEtBQUs7WUFDWCxPQUFPLHNCQUFZLENBQUM7UUFFeEIsS0FBSyxjQUFJLENBQUMsSUFBSTtZQUNWLE9BQU8scUJBQVcsQ0FBQztRQUV2QixLQUFLLGNBQUksQ0FBQyxhQUFhO1lBQ25CLE9BQU8sOEJBQW9CLENBQUM7UUFFaEMsS0FBSyxjQUFJLENBQUMsUUFBUTtZQUNkLE9BQU8seUJBQWUsQ0FBQztRQUUzQixLQUFLLGNBQUksQ0FBQyxVQUFVO1lBQ2hCLE9BQU8sMkJBQWlCLENBQUM7UUFFN0IsS0FBSyxjQUFJLENBQUMscUJBQXFCO1lBQzNCLE9BQU8sc0NBQTRCLENBQUM7UUFFeEMsS0FBSyxjQUFJLENBQUMscUJBQXFCO1lBQzNCLE9BQU8sc0NBQTRCLENBQUM7UUFFeEMsS0FBSyxjQUFJLENBQUMsUUFBUTtZQUNkLE9BQU8seUJBQWUsQ0FBQztRQUUzQixLQUFLLGNBQUksQ0FBQyxJQUFJO1lBQ1YsT0FBTyx5QkFBVyxDQUFDO1FBRXZCLEtBQUssY0FBSSxDQUFDLFVBQVU7WUFDaEIsT0FBTywyQkFBaUIsQ0FBQztRQUU3QixLQUFLLGNBQUksQ0FBQyxnQkFBZ0I7WUFDdEIsT0FBTyxpQ0FBdUIsQ0FBQztRQUVuQyxLQUFLLGNBQUksQ0FBQyxXQUFXO1lBQ2pCLE9BQU8sNEJBQWtCLENBQUM7UUFFOUIsS0FBSyxjQUFJLENBQUMsY0FBYztZQUNwQixPQUFPLDRDQUFxQixDQUFDO1FBRWpDLEtBQUssY0FBSSxDQUFDLHFCQUFxQjtZQUMzQixPQUFPLG1EQUE0QixDQUFDO1FBRXhDLEtBQUssY0FBSSxDQUFDLFlBQVk7WUFDbEIsT0FBTywwQ0FBbUIsQ0FBQztRQUUvQixLQUFLLGNBQUksQ0FBQyx1QkFBdUI7WUFDN0IsT0FBTyxxREFBOEIsQ0FBQztRQUUxQyxLQUFLLGNBQUksQ0FBQyxjQUFjO1lBQ3BCLE9BQU8sNENBQXFCLENBQUM7UUFFakMsS0FBSyxjQUFJLENBQUMsY0FBYztZQUNwQixPQUFPLCtCQUFxQixDQUFDO1FBRWpDLEtBQUssY0FBSSxDQUFDLGtCQUFrQjtZQUN4QixPQUFPLG1DQUF5QixDQUFDO1FBRXJDLEtBQUssY0FBSSxDQUFDLHNCQUFzQjtZQUM1QixPQUFPLHVDQUE2QixDQUFDO1FBRXpDLEtBQUssY0FBSSxDQUFDLFlBQVk7WUFDbEIsT0FBTyw2QkFBbUIsQ0FBQztRQUUvQixLQUFLLGNBQUksQ0FBQyxrQkFBa0I7WUFDeEIsT0FBTyxtQ0FBeUIsQ0FBQztRQUVyQyxLQUFLLGNBQUksQ0FBQyxTQUFTO1lBQ2YsT0FBTyxtQkFBZ0IsQ0FBQztRQUU1QixLQUFLLGNBQUksQ0FBQyxLQUFLO1lBQ1gsT0FBTywwQkFBWSxDQUFDO1FBRXhCLEtBQUssY0FBSSxDQUFDLGlCQUFpQjtZQUN2QixPQUFPLGtDQUF3QixDQUFDO1FBRXBDO1lBQ0ksT0FBTyxJQUFJLENBQUM7S0FDbkI7QUFDTCxDQUFDO0FBRUQsNkJBQTZCO0FBQzdCLFNBQXdCLHVCQUF1QixDQUFFLEdBQUcsRUFBRSxPQUFPO0lBQ3pELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFckMsT0FBTyxPQUFPLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFKRCwwQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUWVBFIGZyb20gJy4vdHlwZSc7XG5cbmltcG9ydCB7XG4gICAgQ2xpY2tDb21tYW5kLFxuICAgIFJpZ2h0Q2xpY2tDb21tYW5kLFxuICAgIERvdWJsZUNsaWNrQ29tbWFuZCxcbiAgICBIb3ZlckNvbW1hbmQsXG4gICAgRHJhZ0NvbW1hbmQsXG4gICAgRHJhZ1RvRWxlbWVudENvbW1hbmQsXG4gICAgVHlwZVRleHRDb21tYW5kLFxuICAgIFNlbGVjdFRleHRDb21tYW5kLFxuICAgIFNlbGVjdFRleHRBcmVhQ29udGVudENvbW1hbmQsXG4gICAgU2VsZWN0RWRpdGFibGVDb250ZW50Q29tbWFuZCxcbiAgICBQcmVzc0tleUNvbW1hbmQsXG4gICAgTmF2aWdhdGVUb0NvbW1hbmQsXG4gICAgU2V0RmlsZXNUb1VwbG9hZENvbW1hbmQsXG4gICAgQ2xlYXJVcGxvYWRDb21tYW5kLFxuICAgIFN3aXRjaFRvSWZyYW1lQ29tbWFuZCxcbiAgICBTd2l0Y2hUb01haW5XaW5kb3dDb21tYW5kLFxuICAgIFNldE5hdGl2ZURpYWxvZ0hhbmRsZXJDb21tYW5kLFxuICAgIFNldFRlc3RTcGVlZENvbW1hbmQsXG4gICAgU2V0UGFnZUxvYWRUaW1lb3V0Q29tbWFuZCxcbiAgICBFeGVjdXRlRXhwcmVzc2lvbkNvbW1hbmRcbn0gZnJvbSAnLi9hY3Rpb25zJztcblxuaW1wb3J0IEFzc2VydGlvbkNvbW1hbmQgZnJvbSAnLi9hc3NlcnRpb24nO1xuXG5pbXBvcnQge1xuICAgIFRha2VTY3JlZW5zaG90Q29tbWFuZCxcbiAgICBUYWtlRWxlbWVudFNjcmVlbnNob3RDb21tYW5kLFxuICAgIFJlc2l6ZVdpbmRvd0NvbW1hbmQsXG4gICAgUmVzaXplV2luZG93VG9GaXREZXZpY2VDb21tYW5kLFxuICAgIE1heGltaXplV2luZG93Q29tbWFuZFxufSBmcm9tICcuL2Jyb3dzZXItbWFuaXB1bGF0aW9uJztcblxuaW1wb3J0IHsgV2FpdENvbW1hbmQsIERlYnVnQ29tbWFuZCB9IGZyb20gJy4vb2JzZXJ2YXRpb24nO1xuXG5mdW5jdGlvbiBnZXRDbWRDdG9yICh0eXBlKSB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgVFlQRS5jbGljazpcbiAgICAgICAgICAgIHJldHVybiBDbGlja0NvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLnJpZ2h0Q2xpY2s6XG4gICAgICAgICAgICByZXR1cm4gUmlnaHRDbGlja0NvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLmRvdWJsZUNsaWNrOlxuICAgICAgICAgICAgcmV0dXJuIERvdWJsZUNsaWNrQ29tbWFuZDtcblxuICAgICAgICBjYXNlIFRZUEUuaG92ZXI6XG4gICAgICAgICAgICByZXR1cm4gSG92ZXJDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5kcmFnOlxuICAgICAgICAgICAgcmV0dXJuIERyYWdDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5kcmFnVG9FbGVtZW50OlxuICAgICAgICAgICAgcmV0dXJuIERyYWdUb0VsZW1lbnRDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS50eXBlVGV4dDpcbiAgICAgICAgICAgIHJldHVybiBUeXBlVGV4dENvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLnNlbGVjdFRleHQ6XG4gICAgICAgICAgICByZXR1cm4gU2VsZWN0VGV4dENvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLnNlbGVjdFRleHRBcmVhQ29udGVudDpcbiAgICAgICAgICAgIHJldHVybiBTZWxlY3RUZXh0QXJlYUNvbnRlbnRDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5zZWxlY3RFZGl0YWJsZUNvbnRlbnQ6XG4gICAgICAgICAgICByZXR1cm4gU2VsZWN0RWRpdGFibGVDb250ZW50Q29tbWFuZDtcblxuICAgICAgICBjYXNlIFRZUEUucHJlc3NLZXk6XG4gICAgICAgICAgICByZXR1cm4gUHJlc3NLZXlDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS53YWl0OlxuICAgICAgICAgICAgcmV0dXJuIFdhaXRDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5uYXZpZ2F0ZVRvOlxuICAgICAgICAgICAgcmV0dXJuIE5hdmlnYXRlVG9Db21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5zZXRGaWxlc1RvVXBsb2FkOlxuICAgICAgICAgICAgcmV0dXJuIFNldEZpbGVzVG9VcGxvYWRDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5jbGVhclVwbG9hZDpcbiAgICAgICAgICAgIHJldHVybiBDbGVhclVwbG9hZENvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLnRha2VTY3JlZW5zaG90OlxuICAgICAgICAgICAgcmV0dXJuIFRha2VTY3JlZW5zaG90Q29tbWFuZDtcblxuICAgICAgICBjYXNlIFRZUEUudGFrZUVsZW1lbnRTY3JlZW5zaG90OlxuICAgICAgICAgICAgcmV0dXJuIFRha2VFbGVtZW50U2NyZWVuc2hvdENvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLnJlc2l6ZVdpbmRvdzpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVXaW5kb3dDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5yZXNpemVXaW5kb3dUb0ZpdERldmljZTpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVXaW5kb3dUb0ZpdERldmljZUNvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLm1heGltaXplV2luZG93OlxuICAgICAgICAgICAgcmV0dXJuIE1heGltaXplV2luZG93Q29tbWFuZDtcblxuICAgICAgICBjYXNlIFRZUEUuc3dpdGNoVG9JZnJhbWU6XG4gICAgICAgICAgICByZXR1cm4gU3dpdGNoVG9JZnJhbWVDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5zd2l0Y2hUb01haW5XaW5kb3c6XG4gICAgICAgICAgICByZXR1cm4gU3dpdGNoVG9NYWluV2luZG93Q29tbWFuZDtcblxuICAgICAgICBjYXNlIFRZUEUuc2V0TmF0aXZlRGlhbG9nSGFuZGxlcjpcbiAgICAgICAgICAgIHJldHVybiBTZXROYXRpdmVEaWFsb2dIYW5kbGVyQ29tbWFuZDtcblxuICAgICAgICBjYXNlIFRZUEUuc2V0VGVzdFNwZWVkOlxuICAgICAgICAgICAgcmV0dXJuIFNldFRlc3RTcGVlZENvbW1hbmQ7XG5cbiAgICAgICAgY2FzZSBUWVBFLnNldFBhZ2VMb2FkVGltZW91dDpcbiAgICAgICAgICAgIHJldHVybiBTZXRQYWdlTG9hZFRpbWVvdXRDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5hc3NlcnRpb246XG4gICAgICAgICAgICByZXR1cm4gQXNzZXJ0aW9uQ29tbWFuZDtcblxuICAgICAgICBjYXNlIFRZUEUuZGVidWc6XG4gICAgICAgICAgICByZXR1cm4gRGVidWdDb21tYW5kO1xuXG4gICAgICAgIGNhc2UgVFlQRS5leGVjdXRlRXhwcmVzc2lvbjpcbiAgICAgICAgICAgIHJldHVybiBFeGVjdXRlRXhwcmVzc2lvbkNvbW1hbmQ7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuLy8gQ3JlYXRlIGNvbW1hbmQgZnJvbSBvYmplY3RcbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNyZWF0ZUNvbW1hbmRGcm9tT2JqZWN0IChvYmosIHRlc3RSdW4pIHtcbiAgICBjb25zdCBDbWRDdG9yID0gZ2V0Q21kQ3RvcihvYmoudHlwZSk7XG5cbiAgICByZXR1cm4gQ21kQ3RvciAmJiBuZXcgQ21kQ3RvcihvYmosIHRlc3RSdW4pO1xufVxuIl19