testcafe
Version:
Automated browser testing for the modern web development stack.
42 lines • 8.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CommandTransformerFactory = void 0;
const types_1 = require("../types");
const navigate_1 = require("./navigate");
const set_viewport_1 = require("./set-viewport");
const change_1 = require("./change");
const key_down_1 = require("./key-down");
const key_up_1 = require("./key-up");
const scroll_1 = require("./scroll");
const wait_for_expression_1 = require("./wait-for-expression");
const wait_for_element_1 = require("./wait-for-element");
const hover_1 = require("./hover");
const runtime_1 = require("../../../../../errors/runtime");
const types_2 = require("../../../../../errors/types");
const click_1 = require("./click");
const SECONDARY_BUTTON_NAME = 'secondary';
class CommandTransformerFactory {
static create(step, filename, callsite) {
switch (step.type) {
case types_1.DEVTOOLS_COMMAND_TYPE.navigate: return new navigate_1.NavigateCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.setViewport: return new set_viewport_1.SetViewportCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.click: {
if (step.button === SECONDARY_BUTTON_NAME)
return new click_1.RightClickCommandTransformer(step, callsite);
return new click_1.ClickCommandTransformer(step, callsite);
}
case types_1.DEVTOOLS_COMMAND_TYPE.dblClick: return new click_1.DoubleClickCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.hover: return new hover_1.HoverCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.change: return new change_1.ChangeCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.keyDown: return new key_down_1.KeyDownCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.keyUp: return new key_up_1.KeyUpCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.scroll: return new scroll_1.ScrollCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.waitForExpression: return new wait_for_expression_1.WaitForExpressionCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.waitForElement: return new wait_for_element_1.WaitForElementCommandTransformer(step, callsite);
case types_1.DEVTOOLS_COMMAND_TYPE.close: return null;
}
throw new runtime_1.GeneralError(types_2.RUNTIME_ERRORS.invalidCommandInJsonCompiler, filename, step.type);
}
}
exports.CommandTransformerFactory = CommandTransformerFactory;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21waWxlci90ZXN0LWZpbGUvZm9ybWF0cy9kZXYtdG9vbHMvY29tbWFuZHMvZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvQ0FBdUU7QUFDdkUseUNBQXdEO0FBQ3hELGlEQUErRDtBQUMvRCxxQ0FBb0Q7QUFDcEQseUNBQXVEO0FBQ3ZELHFDQUFtRDtBQUNuRCxxQ0FBb0Q7QUFDcEQsK0RBQTRFO0FBQzVFLHlEQUFzRTtBQUV0RSxtQ0FBa0Q7QUFDbEQsMkRBQTZEO0FBQzdELHVEQUE2RDtBQUU3RCxtQ0FJaUI7QUFHakIsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUM7QUFFMUMsTUFBYSx5QkFBeUI7SUFDbEMsTUFBTSxDQUFDLE1BQU0sQ0FBRSxJQUEwQixFQUFFLFFBQWdCLEVBQUUsUUFBZ0I7UUFDekUsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2YsS0FBSyw2QkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLElBQUkscUNBQTBCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzNGLEtBQUssNkJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxJQUFJLDRDQUE2QixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqRyxLQUFLLDZCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUsscUJBQXFCO29CQUNyQyxPQUFPLElBQUksb0NBQTRCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUM1RCxPQUFPLElBQUksK0JBQXVCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2FBQ3REO1lBQ0QsS0FBSyw2QkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLElBQUkscUNBQTZCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlGLEtBQUssNkJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLCtCQUF1QixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyRixLQUFLLDZCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxpQ0FBd0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdkYsS0FBSyw2QkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLElBQUksb0NBQXlCLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pGLEtBQUssNkJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLGdDQUF1QixDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNyRixLQUFLLDZCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sSUFBSSxpQ0FBd0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDdkYsS0FBSyw2QkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE9BQU8sSUFBSSx5REFBbUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0csS0FBSyw2QkFBcUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLElBQUksbURBQWdDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3ZHLEtBQUssNkJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUM7U0FDakQ7UUFFRCxNQUFNLElBQUksc0JBQVksQ0FBQyxzQkFBYyxDQUFDLDRCQUE0QixFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0YsQ0FBQztDQUNKO0FBdkJELDhEQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERFVlRPT0xTX0NPTU1BTkRfVFlQRSwgRGV2VG9vbHNSZWNvcmRlclN0ZXAgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBOYXZpZ2F0ZUNvbW1hbmRUcmFuc2Zvcm1lciB9IGZyb20gJy4vbmF2aWdhdGUnO1xuaW1wb3J0IHsgU2V0Vmlld3BvcnRDb21tYW5kVHJhbnNmb3JtZXIgfSBmcm9tICcuL3NldC12aWV3cG9ydCc7XG5pbXBvcnQgeyBDaGFuZ2VDb21tYW5kVHJhbnNmb3JtZXIgfSBmcm9tICcuL2NoYW5nZSc7XG5pbXBvcnQgeyBLZXlEb3duQ29tbWFuZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi9rZXktZG93bic7XG5pbXBvcnQgeyBLZXlVcENvbW1hbmRUcmFuc2Zvcm1lciB9IGZyb20gJy4va2V5LXVwJztcbmltcG9ydCB7IFNjcm9sbENvbW1hbmRUcmFuc2Zvcm1lciB9IGZyb20gJy4vc2Nyb2xsJztcbmltcG9ydCB7IFdhaXRGb3JFeHByZXNzaW9uQ29tbWFuZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi93YWl0LWZvci1leHByZXNzaW9uJztcbmltcG9ydCB7IFdhaXRGb3JFbGVtZW50Q29tbWFuZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi93YWl0LWZvci1lbGVtZW50JztcbmltcG9ydCB7IENvbW1hbmRUcmFuc2Zvcm1lckJhc2UgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgSG92ZXJDb21tYW5kVHJhbnNmb3JtZXIgfSBmcm9tICcuL2hvdmVyJztcbmltcG9ydCB7IEdlbmVyYWxFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Vycm9ycy9ydW50aW1lJztcbmltcG9ydCB7IFJVTlRJTUVfRVJST1JTIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZXJyb3JzL3R5cGVzJztcblxuaW1wb3J0IHtcbiAgICBDbGlja0NvbW1hbmRUcmFuc2Zvcm1lcixcbiAgICBEb3VibGVDbGlja0NvbW1hbmRUcmFuc2Zvcm1lcixcbiAgICBSaWdodENsaWNrQ29tbWFuZFRyYW5zZm9ybWVyLFxufSBmcm9tICcuL2NsaWNrJztcblxuXG5jb25zdCBTRUNPTkRBUllfQlVUVE9OX05BTUUgPSAnc2Vjb25kYXJ5JztcblxuZXhwb3J0IGNsYXNzIENvbW1hbmRUcmFuc2Zvcm1lckZhY3Rvcnkge1xuICAgIHN0YXRpYyBjcmVhdGUgKHN0ZXA6IERldlRvb2xzUmVjb3JkZXJTdGVwLCBmaWxlbmFtZTogc3RyaW5nLCBjYWxsc2l0ZTogbnVtYmVyKTogQ29tbWFuZFRyYW5zZm9ybWVyQmFzZSB8IG51bGwge1xuICAgICAgICBzd2l0Y2ggKHN0ZXAudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBERVZUT09MU19DT01NQU5EX1RZUEUubmF2aWdhdGU6IHJldHVybiBuZXcgTmF2aWdhdGVDb21tYW5kVHJhbnNmb3JtZXIoc3RlcCwgY2FsbHNpdGUpO1xuICAgICAgICAgICAgY2FzZSBERVZUT09MU19DT01NQU5EX1RZUEUuc2V0Vmlld3BvcnQ6IHJldHVybiBuZXcgU2V0Vmlld3BvcnRDb21tYW5kVHJhbnNmb3JtZXIoc3RlcCwgY2FsbHNpdGUpO1xuICAgICAgICAgICAgY2FzZSBERVZUT09MU19DT01NQU5EX1RZUEUuY2xpY2s6IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RlcC5idXR0b24gPT09IFNFQ09OREFSWV9CVVRUT05fTkFNRSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBSaWdodENsaWNrQ29tbWFuZFRyYW5zZm9ybWVyKHN0ZXAsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENsaWNrQ29tbWFuZFRyYW5zZm9ybWVyKHN0ZXAsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgREVWVE9PTFNfQ09NTUFORF9UWVBFLmRibENsaWNrOiByZXR1cm4gbmV3IERvdWJsZUNsaWNrQ29tbWFuZFRyYW5zZm9ybWVyKHN0ZXAsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgIGNhc2UgREVWVE9PTFNfQ09NTUFORF9UWVBFLmhvdmVyOiByZXR1cm4gbmV3IEhvdmVyQ29tbWFuZFRyYW5zZm9ybWVyKHN0ZXAsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgIGNhc2UgREVWVE9PTFNfQ09NTUFORF9UWVBFLmNoYW5nZTogcmV0dXJuIG5ldyBDaGFuZ2VDb21tYW5kVHJhbnNmb3JtZXIoc3RlcCwgY2FsbHNpdGUpO1xuICAgICAgICAgICAgY2FzZSBERVZUT09MU19DT01NQU5EX1RZUEUua2V5RG93bjogcmV0dXJuIG5ldyBLZXlEb3duQ29tbWFuZFRyYW5zZm9ybWVyKHN0ZXAsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgIGNhc2UgREVWVE9PTFNfQ09NTUFORF9UWVBFLmtleVVwOiByZXR1cm4gbmV3IEtleVVwQ29tbWFuZFRyYW5zZm9ybWVyKHN0ZXAsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgIGNhc2UgREVWVE9PTFNfQ09NTUFORF9UWVBFLnNjcm9sbDogcmV0dXJuIG5ldyBTY3JvbGxDb21tYW5kVHJhbnNmb3JtZXIoc3RlcCwgY2FsbHNpdGUpO1xuICAgICAgICAgICAgY2FzZSBERVZUT09MU19DT01NQU5EX1RZUEUud2FpdEZvckV4cHJlc3Npb246IHJldHVybiBuZXcgV2FpdEZvckV4cHJlc3Npb25Db21tYW5kVHJhbnNmb3JtZXIoc3RlcCwgY2FsbHNpdGUpO1xuICAgICAgICAgICAgY2FzZSBERVZUT09MU19DT01NQU5EX1RZUEUud2FpdEZvckVsZW1lbnQ6IHJldHVybiBuZXcgV2FpdEZvckVsZW1lbnRDb21tYW5kVHJhbnNmb3JtZXIoc3RlcCwgY2FsbHNpdGUpO1xuICAgICAgICAgICAgY2FzZSBERVZUT09MU19DT01NQU5EX1RZUEUuY2xvc2U6IHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgbmV3IEdlbmVyYWxFcnJvcihSVU5USU1FX0VSUk9SUy5pbnZhbGlkQ29tbWFuZEluSnNvbkNvbXBpbGVyLCBmaWxlbmFtZSwgc3RlcC50eXBlKTtcbiAgICB9XG59XG4iXX0=