offensive
Version:
Fast and boilerplate-free precondition checks for javascript.
60 lines (59 loc) • 2.64 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.BeforeAssertion = void 0;
var model_1 = require("../../model");
var NoDsl_1 = require("../../NoDsl");
var ObjectSerializer_1 = require("../../ObjectSerializer");
require("../aDate");
require("../../connectors");
var serializer = new ObjectSerializer_1.ObjectSerializer();
/**
* @author Maciej Chałapuk (maciej@chalapuk.pl)
*/
var BeforeAssertion = /** @class */ (function () {
function BeforeAssertion(comparedDate, comparedVarName) {
this.comparedDate = comparedDate;
this.comparedVarName = comparedVarName;
}
BeforeAssertion.prototype.assert = function (varName, testedValue, contract) {
var _a = this, comparedDate = _a.comparedDate, comparedVarName = _a.comparedVarName;
var comparedString = comparedVarName
? "".concat(comparedVarName, " (").concat(serializer.serializeDate(comparedDate), ")")
: serializer.serializeDate(comparedDate);
if (!contract(varName, testedValue).is.aDate.success) {
var wrapper_1 = new ObjectSerializer_1.NoDate(testedValue);
return {
get success() {
return false;
},
get message() {
return new model_1.StandardMessage(varName, "be before ".concat(comparedString), wrapper_1);
},
};
}
return {
get success() {
return testedValue.getTime() < comparedDate.getTime();
},
get message() {
return new model_1.StandardMessage(varName, "be before ".concat(comparedString), testedValue);
},
};
};
return BeforeAssertion;
}());
exports.BeforeAssertion = BeforeAssertion;
(function (BeforeAssertion) {
/**
* @author Maciej Chałapuk (maciej@chalapuk.pl)
*/
function factory(args) {
NoDsl_1.nodslArguments.check(args.length === 1 || args.length === 2, '.greaterThan requires 1 or 2 arguments (got ', args.length, ')');
NoDsl_1.nodslArguments.check(args[0] instanceof Date, 'comparedDate must be instance of Date (got ', (typeof args[0]), ')');
NoDsl_1.nodslArguments.check(args[1] === undefined || typeof args[1] === 'string', 'comparedVarName must be undefined or a string (got ', (typeof args[1]), ')');
return new BeforeAssertion(args[0], args[1]);
}
BeforeAssertion.factory = factory;
})(BeforeAssertion = exports.BeforeAssertion || (exports.BeforeAssertion = {}));
exports.BeforeAssertion = BeforeAssertion;
exports.default = BeforeAssertion;
;