Innovenergy_trunk/frontend/node_modules/testcafe/lib/test-run/commands/assertion.js

119 lines
15 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.NotMatchAssertionCommand = exports.MatchAssertionCommand = exports.NotWithinAssertionCommand = exports.WithinAssertionCommand = exports.LteAssertionCommand = exports.LtAssertionCommand = exports.GteAssertionCommand = exports.GtAssertionCommand = exports.NotTypeOfAssertionCommand = exports.TypeOfAssertionCommand = exports.NotContainsAssertionCommand = exports.ContainsAssertionCommand = exports.NotOkAssertionCommand = exports.OkAssertionCommand = exports.NotEqlAssertionCommand = exports.EqlAssertionCommand = exports.AssertionCommand = void 0;
const type_1 = __importDefault(require("./type"));
const base_1 = require("./base");
const options_1 = require("./options");
const runtime_1 = require("../../errors/runtime");
const test_run_1 = require("../../errors/test-run");
const execute_js_expression_1 = require("../execute-js-expression");
const utils_1 = require("./utils");
const type_2 = __importDefault(require("../../assertions/type"));
const argument_1 = require("./validations/argument");
// Initializers
function initAssertionOptions(name, val) {
return new options_1.AssertionOptions(val, true);
}
//Initializers
function initAssertionParameter(name, val, { skipVisibilityCheck, testRun }) {
try {
if ((0, utils_1.isJSExpression)(val))
val = (0, execute_js_expression_1.executeJsExpression)(val.value, testRun, { skipVisibilityCheck });
return val;
}
catch (err) {
throw new test_run_1.AssertionExecutableArgumentError(name, val.value, err, err instanceof runtime_1.APIError);
}
}
const ASSERTION_NOT_REPORTED_PROPERTIES = ['id', 'originActual'];
// Commands
class AssertionCommand extends base_1.ActionCommandBase {
constructor(obj, testRun, validateProperties) {
super(obj, testRun, type_1.default.assertion, validateProperties);
}
getAssignableProperties() {
return [
{ name: 'id', type: argument_1.nonEmptyStringArgument, required: false },
{ name: 'assertionType', type: argument_1.nonEmptyStringArgument, required: true },
{ name: 'originActual', defaultValue: void 0 },
{ name: 'actual', init: initAssertionParameter, defaultValue: void 0 },
{ name: 'expected', init: initAssertionParameter, defaultValue: void 0 },
{ name: 'expected2', init: initAssertionParameter, defaultValue: void 0 },
{ name: 'message', type: argument_1.stringArgument, defaultValue: null },
{ name: 'options', type: argument_1.actionOptions, init: initAssertionOptions, required: true },
];
}
getNonReportedProperties() {
return super.getNonReportedProperties().concat(ASSERTION_NOT_REPORTED_PROPERTIES);
}
}
exports.AssertionCommand = AssertionCommand;
AssertionCommand.methodName = 'expect';
class EqlAssertionCommand extends AssertionCommand {
}
exports.EqlAssertionCommand = EqlAssertionCommand;
EqlAssertionCommand.methodName = type_2.default.eql;
class NotEqlAssertionCommand extends AssertionCommand {
}
exports.NotEqlAssertionCommand = NotEqlAssertionCommand;
NotEqlAssertionCommand.methodName = type_2.default.notEql;
class OkAssertionCommand extends AssertionCommand {
}
exports.OkAssertionCommand = OkAssertionCommand;
OkAssertionCommand.methodName = type_2.default.ok;
class NotOkAssertionCommand extends AssertionCommand {
}
exports.NotOkAssertionCommand = NotOkAssertionCommand;
NotOkAssertionCommand.methodName = type_2.default.notOk;
class ContainsAssertionCommand extends AssertionCommand {
}
exports.ContainsAssertionCommand = ContainsAssertionCommand;
ContainsAssertionCommand.methodName = type_2.default.contains;
class NotContainsAssertionCommand extends AssertionCommand {
}
exports.NotContainsAssertionCommand = NotContainsAssertionCommand;
NotContainsAssertionCommand.methodName = type_2.default.notContains;
class TypeOfAssertionCommand extends AssertionCommand {
}
exports.TypeOfAssertionCommand = TypeOfAssertionCommand;
TypeOfAssertionCommand.methodName = type_2.default.typeOf;
class NotTypeOfAssertionCommand extends AssertionCommand {
}
exports.NotTypeOfAssertionCommand = NotTypeOfAssertionCommand;
NotTypeOfAssertionCommand.methodName = type_2.default.notTypeOf;
class GtAssertionCommand extends AssertionCommand {
}
exports.GtAssertionCommand = GtAssertionCommand;
GtAssertionCommand.methodName = type_2.default.gt;
class GteAssertionCommand extends AssertionCommand {
}
exports.GteAssertionCommand = GteAssertionCommand;
GteAssertionCommand.methodName = type_2.default.gte;
class LtAssertionCommand extends AssertionCommand {
}
exports.LtAssertionCommand = LtAssertionCommand;
LtAssertionCommand.methodName = type_2.default.lt;
class LteAssertionCommand extends AssertionCommand {
}
exports.LteAssertionCommand = LteAssertionCommand;
LteAssertionCommand.methodName = type_2.default.lte;
class WithinAssertionCommand extends AssertionCommand {
}
exports.WithinAssertionCommand = WithinAssertionCommand;
WithinAssertionCommand.methodName = type_2.default.within;
class NotWithinAssertionCommand extends AssertionCommand {
}
exports.NotWithinAssertionCommand = NotWithinAssertionCommand;
NotWithinAssertionCommand.methodName = type_2.default.notWithin;
class MatchAssertionCommand extends AssertionCommand {
}
exports.MatchAssertionCommand = MatchAssertionCommand;
MatchAssertionCommand.methodName = type_2.default.match;
class NotMatchAssertionCommand extends AssertionCommand {
}
exports.NotMatchAssertionCommand = NotMatchAssertionCommand;
NotMatchAssertionCommand.methodName = type_2.default.notMatch;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXJ0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Rlc3QtcnVuL2NvbW1hbmRzL2Fzc2VydGlvbi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsaUNBQTJDO0FBQzNDLHVDQUE2QztBQUM3QyxrREFBZ0Q7QUFDaEQsb0RBQXlFO0FBQ3pFLG9FQUErRDtBQUMvRCxtQ0FBeUM7QUFDekMsaUVBQW1EO0FBRW5ELHFEQUlnQztBQUdoQyxlQUFlO0FBQ2YsU0FBUyxvQkFBb0IsQ0FBRSxJQUFJLEVBQUUsR0FBRztJQUNwQyxPQUFPLElBQUksMEJBQWdCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxjQUFjO0FBQ2QsU0FBUyxzQkFBc0IsQ0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsT0FBTyxFQUFFO0lBQ3hFLElBQUk7UUFDQSxJQUFJLElBQUEsc0JBQWMsRUFBQyxHQUFHLENBQUM7WUFDbkIsR0FBRyxHQUFHLElBQUEsMkNBQW1CLEVBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFFM0UsT0FBTyxHQUFHLENBQUM7S0FDZDtJQUNELE9BQU8sR0FBRyxFQUFFO1FBQ1IsTUFBTSxJQUFJLDJDQUFnQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLFlBQVksa0JBQVEsQ0FBQyxDQUFDO0tBQzdGO0FBQ0wsQ0FBQztBQUVELE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFFakUsV0FBVztBQUNYLE1BQWEsZ0JBQWlCLFNBQVEsd0JBQWlCO0lBR25ELFlBQWEsR0FBRyxFQUFFLE9BQU8sRUFBRSxrQkFBa0I7UUFDekMsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVB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QWdCOztBQUE1RCx3REFFQztBQURVLGlDQUFVLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztBQUc5QyxNQUFhLHlCQUEwQixTQUFRLGdCQUFnQjs7QUFBL0QsOERBRUM7QUFEVSxvQ0FBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUM7QUFHakQsTUFBYSxxQkFBc0IsU0FBUSxnQkFBZ0I7O0FBQTNELHNEQUVDO0FBRFUsZ0NBQVUsR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDO0FBRzdDLE1BQWEsd0JBQXlCLFNBQVEsZ0JBQWdCOztBQUE5RCw0REFFQztBQURVLG1DQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUWVBFIGZyb20gJy4vdHlwZSc7XG5pbXBvcnQgeyBBY3Rpb25Db21tYW5kQmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBBc3NlcnRpb25PcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7IEFQSUVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3JzL3J1bnRpbWUnO1xuaW1wb3J0IHsgQXNzZXJ0aW9uRXhlY3V0YWJsZUFyZ3VtZW50RXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMvdGVzdC1ydW4nO1xuaW1wb3J0IHsgZXhlY3V0ZUpzRXhwcmVzc2lvbiB9IGZyb20gJy4uL2V4ZWN1dGUtanMtZXhwcmVzc2lvbic7XG5pbXBvcnQgeyBpc0pTRXhwcmVzc2lvbiB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IEFTU0VSVElPTl9UWVBFIGZyb20gJy4uLy4uL2Fzc2VydGlvbnMvdHlwZSc7XG5cbmltcG9ydCB7XG4gICAgc3RyaW5nQXJndW1lbnQsXG4gICAgYWN0aW9uT3B0aW9ucyxcbiAgICBub25FbXB0eVN0cmluZ0FyZ3VtZW50LFxufSBmcm9tICcuL3ZhbGlkYXRpb25zL2FyZ3VtZW50JztcblxuXG4vLyBJbml0aWFsaXplcnNcbmZ1bmN0aW9uIGluaXRBc3NlcnRpb25PcHRpb25zIChuYW1lLCB2YWwpIHtcbiAgICByZXR1cm4gbmV3IEFzc2VydGlvbk9wdGlvbnModmFsLCB0cnVlKTtcbn1cblxuLy9Jbml0aWFsaXplcnNcbmZ1bmN0aW9uIGluaXRBc3NlcnRpb25QYXJhbWV0ZXIgKG5hbWUsIHZhbCwgeyBza2lwVmlzaWJpbGl0eUNoZWNrLCB0ZXN0UnVuIH0pIHtcbiAgICB0cnkge1xuICAgICAgICBpZiAoaXNKU0V4cHJlc3Npb24odmFsKSlcbiAgICAgICAgICAgIHZhbCA9IGV4ZWN1dGVKc0V4cHJlc3Npb24odmFsLnZhbHVlLCB0ZXN0UnVuLCB7IHNraXBWaXNpYmlsaXR5Q2hlY2sgfSk7XG5cbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICB9XG4gICAgY2F0Y2ggKGVycikge1xuICAgICAgICB0aHJvdyBuZXcgQXNzZXJ0aW9uRXhlY3V0YWJsZUFyZ3VtZW50RXJyb3IobmFtZSwgdmFsLnZhbHVlLCBlcnIsIGVyciBpbnN0YW5jZW9mIEFQSUVycm9yKTtcbiAgICB9XG59XG5cbmNvbnN0IEFTU0VSVElPTl9OT1RfUkVQT1JURURfUFJPUEVSVElFUyA9IFsnaWQnLCAnb3JpZ2luQWN0dWFsJ107XG5cbi8vIENvbW1hbmRzXG5leHBvcnQgY2xhc3MgQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFjdGlvbkNvbW1hbmRCYXNlIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9ICdleHBlY3QnO1xuXG4gICAgY29uc3RydWN0b3IgKG9iaiwgdGVzdFJ1biwgdmFsaWRhdGVQcm9wZXJ0aWVzKSB7XG4gICAgICAgIHN1cGVyKG9iaiwgdGVzdFJ1biwgVFlQRS5hc3NlcnRpb24sIHZhbGlkYXRlUHJvcGVydGllcyk7XG4gICAgfVxuXG4gICAgZ2V0QXNzaWduYWJsZVByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgeyBuYW1lOiAnaWQnLCB0eXBlOiBub25FbXB0eVN0cmluZ0FyZ3VtZW50LCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2Fzc2VydGlvblR5cGUnLCB0eXBlOiBub25FbXB0eVN0cmluZ0FyZ3VtZW50LCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnb3JpZ2luQWN0dWFsJywgZGVmYXVsdFZhbHVlOiB2b2lkIDAgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ2FjdHVhbCcsIGluaXQ6IGluaXRBc3NlcnRpb25QYXJhbWV0ZXIsIGRlZmF1bHRWYWx1ZTogdm9pZCAwIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdleHBlY3RlZCcsIGluaXQ6IGluaXRBc3NlcnRpb25QYXJhbWV0ZXIsIGRlZmF1bHRWYWx1ZTogdm9pZCAwIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdleHBlY3RlZDInLCBpbml0OiBpbml0QXNzZXJ0aW9uUGFyYW1ldGVyLCBkZWZhdWx0VmFsdWU6IHZvaWQgMCB9LFxuICAgICAgICAgICAgeyBuYW1lOiAnbWVzc2FnZScsIHR5cGU6IHN0cmluZ0FyZ3VtZW50LCBkZWZhdWx0VmFsdWU6IG51bGwgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ29wdGlvbnMnLCB0eXBlOiBhY3Rpb25PcHRpb25zLCBpbml0OiBpbml0QXNzZXJ0aW9uT3B0aW9ucywgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgXTtcbiAgICB9XG5cbiAgICBnZXROb25SZXBvcnRlZFByb3BlcnRpZXMgKCkge1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0Tm9uUmVwb3J0ZWRQcm9wZXJ0aWVzKCkuY29uY2F0KEFTU0VSVElPTl9OT1RfUkVQT1JURURfUFJPUEVSVElFUyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRXFsQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUuZXFsO1xufVxuXG5leHBvcnQgY2xhc3MgTm90RXFsQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUubm90RXFsO1xufVxuXG5leHBvcnQgY2xhc3MgT2tBc3NlcnRpb25Db21tYW5kIGV4dGVuZHMgQXNzZXJ0aW9uQ29tbWFuZCB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBBU1NFUlRJT05fVFlQRS5vaztcbn1cblxuZXhwb3J0IGNsYXNzIE5vdE9rQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUubm90T2s7XG59XG5cbmV4cG9ydCBjbGFzcyBDb250YWluc0Fzc2VydGlvbkNvbW1hbmQgZXh0ZW5kcyBBc3NlcnRpb25Db21tYW5kIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IEFTU0VSVElPTl9UWVBFLmNvbnRhaW5zO1xufVxuXG5leHBvcnQgY2xhc3MgTm90Q29udGFpbnNBc3NlcnRpb25Db21tYW5kIGV4dGVuZHMgQXNzZXJ0aW9uQ29tbWFuZCB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBBU1NFUlRJT05fVFlQRS5ub3RDb250YWlucztcbn1cblxuZXhwb3J0IGNsYXNzIFR5cGVPZkFzc2VydGlvbkNvbW1hbmQgZXh0ZW5kcyBBc3NlcnRpb25Db21tYW5kIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IEFTU0VSVElPTl9UWVBFLnR5cGVPZjtcbn1cblxuZXhwb3J0IGNsYXNzIE5vdFR5cGVPZkFzc2VydGlvbkNvbW1hbmQgZXh0ZW5kcyBBc3NlcnRpb25Db21tYW5kIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IEFTU0VSVElPTl9UWVBFLm5vdFR5cGVPZjtcbn1cblxuZXhwb3J0IGNsYXNzIEd0QXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUuZ3Q7XG59XG5cbmV4cG9ydCBjbGFzcyBHdGVBc3NlcnRpb25Db21tYW5kIGV4dGVuZHMgQXNzZXJ0aW9uQ29tbWFuZCB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBBU1NFUlRJT05fVFlQRS5ndGU7XG59XG5cbmV4cG9ydCBjbGFzcyBMdEFzc2VydGlvbkNvbW1hbmQgZXh0ZW5kcyBBc3NlcnRpb25Db21tYW5kIHtcbiAgICBzdGF0aWMgbWV0aG9kTmFtZSA9IEFTU0VSVElPTl9UWVBFLmx0O1xufVxuXG5leHBvcnQgY2xhc3MgTHRlQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUubHRlO1xufVxuXG5leHBvcnQgY2xhc3MgV2l0aGluQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUud2l0aGluO1xufVxuXG5leHBvcnQgY2xhc3MgTm90V2l0aGluQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUubm90V2l0aGluO1xufVxuXG5leHBvcnQgY2xhc3MgTWF0Y2hBc3NlcnRpb25Db21tYW5kIGV4dGVuZHMgQXNzZXJ0aW9uQ29tbWFuZCB7XG4gICAgc3RhdGljIG1ldGhvZE5hbWUgPSBBU1NFUlRJT05fVFlQRS5tYXRjaDtcbn1cblxuZXhwb3J0IGNsYXNzIE5vdE1hdGNoQXNzZXJ0aW9uQ29tbWFuZCBleHRlbmRzIEFzc2VydGlvbkNvbW1hbmQge1xuICAgIHN0YXRpYyBtZXRob2ROYW1lID0gQVNTRVJUSU9OX1RZUEUubm90TWF0Y2g7XG59XG4iXX0=