42 lines
5.6 KiB
JavaScript
42 lines
5.6 KiB
JavaScript
|
"use strict";
|
||
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const get_callsite_1 = require("../../errors/get-callsite");
|
||
|
const actions_1 = require("../../test-run/commands/actions");
|
||
|
const delegated_api_1 = require("../../utils/delegated-api");
|
||
|
const delegated_api_2 = __importDefault(require("./delegated-api"));
|
||
|
class CustomActions {
|
||
|
constructor(testController, customActions) {
|
||
|
this._testController = testController;
|
||
|
this._customActions = customActions || {};
|
||
|
this._registerCustomActions();
|
||
|
}
|
||
|
_registerCustomActions() {
|
||
|
Object.entries(this._customActions).forEach(([name, fn]) => {
|
||
|
// @ts-ignore
|
||
|
this[(0, delegated_api_2.default)(name)] = (...args) => {
|
||
|
const callsite = (0, get_callsite_1.getCallsiteForMethod)(name) || void 0;
|
||
|
return this._testController.enqueueCommand(actions_1.RunCustomActionCommand, { fn, args, name }, this._validateCommand, callsite);
|
||
|
};
|
||
|
});
|
||
|
this._delegateAPI(this._customActions);
|
||
|
}
|
||
|
_validateCommand() {
|
||
|
return true;
|
||
|
}
|
||
|
_delegateAPI(actions) {
|
||
|
const customActionsList = Object.entries(actions).map(([name]) => {
|
||
|
return {
|
||
|
srcProp: (0, delegated_api_2.default)(name),
|
||
|
apiProp: name,
|
||
|
accessor: '',
|
||
|
};
|
||
|
});
|
||
|
(0, delegated_api_1.delegateAPI)(this, customActionsList, { useCurrentCtxAsHandler: true });
|
||
|
}
|
||
|
}
|
||
|
exports.default = CustomActions;
|
||
|
module.exports = exports.default;
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWFjdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3Rlc3QtY29udHJvbGxlci9jdXN0b20tYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDREQUFpRTtBQUNqRSw2REFBeUU7QUFDekUsNkRBQXdEO0FBR3hELG9FQUEyQztBQUUzQyxNQUFxQixhQUFhO0lBSTlCLFlBQWEsY0FBOEIsRUFBRSxhQUFtQztRQUM1RSxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELHNCQUFzQjtRQUNsQixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksRUFBRSxFQUFFLENBQUUsRUFBRSxFQUFFO1lBQ3pELGFBQWE7WUFDYixJQUFJLENBQUMsSUFBQSx1QkFBWSxFQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO2dCQUNuQyxNQUFNLFFBQVEsR0FBRyxJQUFBLG1DQUFvQixFQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO2dCQUV0RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLGdDQUFzQixFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDNUgsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFlBQVksQ0FBRSxPQUE2QjtRQUN2QyxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQzdELE9BQU87Z0JBQ0gsT0FBTyxFQUFHLElBQUEsdUJBQVksRUFBQyxJQUFJLENBQUM7Z0JBQzVCLE9BQU8sRUFBRyxJQUFJO2dCQUNkLFFBQVEsRUFBRSxFQUFFO2FBQ2YsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBQSwyQkFBVyxFQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNKO0FBdkNELGdDQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldENhbGxzaXRlRm9yTWV0aG9kIH0gZnJvbSAnLi4vLi4vZXJyb3JzL2dldC1jYWxsc2l0ZSc7XG5pbXBvcnQgeyBSdW5DdXN0b21BY3Rpb25Db21tYW5kIH0gZnJvbSAnLi4vLi4vdGVzdC1ydW4vY29tbWFuZHMvYWN0aW9ucyc7XG5pbXBvcnQgeyBkZWxlZ2F0ZUFQSSB9IGZyb20gJy4uLy4uL3V0aWxzL2RlbGVnYXRlZC1hcGknO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uLy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5pbXBvcnQgVGVzdENvbnRyb2xsZXIgZnJvbSAnLi9pbmRleCc7XG5pbXBvcnQgZGVsZWdhdGVkQVBJIGZyb20gJy4vZGVsZWdhdGVkLWFwaSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEN1c3RvbUFjdGlvbnMge1xuICAgIHByaXZhdGUgX3Rlc3RDb250cm9sbGVyOiBUZXN0Q29udHJvbGxlcjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jdXN0b21BY3Rpb25zOiBEaWN0aW9uYXJ5PEZ1bmN0aW9uPjtcblxuICAgIGNvbnN0cnVjdG9yICh0ZXN0Q29udHJvbGxlcjogVGVzdENvbnRyb2xsZXIsIGN1c3RvbUFjdGlvbnM6IERpY3Rpb25hcnk8RnVuY3Rpb24+KSB7XG4gICAgICAgIHRoaXMuX3Rlc3RDb250cm9sbGVyID0gdGVzdENvbnRyb2xsZXI7XG4gICAgICAgIHRoaXMuX2N1c3RvbUFjdGlvbnMgPSBjdXN0b21BY3Rpb25zIHx8IHt9O1xuXG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyQ3VzdG9tQWN0aW9ucygpO1xuICAgIH1cblxuICAgIF9yZWdpc3RlckN1c3RvbUFjdGlvbnMgKCk6IHZvaWQge1xuICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLl9jdXN0b21BY3Rpb25zKS5mb3JFYWNoKChbIG5hbWUsIGZuIF0pID0+IHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHRoaXNbZGVsZWdhdGVkQVBJKG5hbWUpXSA9ICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FsbHNpdGUgPSBnZXRDYWxsc2l0ZUZvck1ldGhvZChuYW1lKSB8fCB2b2lkIDA7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdGVzdENvbnRyb2xsZXIuZW5xdWV1ZUNvbW1hbmQoUnVuQ3VzdG9tQWN0aW9uQ29tbWFuZCwgeyBmbiwgYXJncywgbmFtZSB9LCB0aGlzLl92YWxpZGF0ZUNvbW1hbmQsIGNhbGxzaXRlKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2RlbGVnYXRlQVBJKHRoaXMuX2N1c3RvbUFjdGlvbnMpO1xuICAgIH1cblxuICAgIF92YWxpZGF0ZUNvbW1hbmQgKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBfZGVsZWdhdGVBUEkgKGFjdGlvbnM6IERpY3Rpb25hcnk8RnVuY3Rpb24+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUFjdGlvbnNMaXN0ID0gT2JqZWN0LmVudHJpZXMoYWN0aW9ucykubWFwKChbbmFtZV0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3JjUHJvcDogIGRlbGVnYXRlZEFQSShuYW1lKSxcbiAgICAgICAgICAgICAgICBhcGlQcm9wOiAgbmFtZSxcbiAgICAgICAgICAgICAgICBhY2Nlc3NvcjogJycsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBkZWxlZ2F0ZUFQSSh0aGlzLCBjdXN0b21BY3Rpb25zTGlzdCwgeyB1c2VDdXJyZW50Q3R4QXNIYW5kbGVyOiB0cnVlIH0pO1xuICAgIH1cbn1cbiJdfQ==
|