offensive
Version:
Fast and boilerplate-free precondition checks for javascript.
50 lines (49 loc) • 2.11 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.IncludesAllOfAssertion = void 0;
var model_1 = require("../../model");
var NoDsl_1 = require("../../NoDsl");
var ObjectSerializer_1 = require("../../ObjectSerializer");
require("../anArray");
require("../../connectors");
var serializer = new ObjectSerializer_1.default();
/**
* @author Maciej Chałapuk (maciej@chalapuk.pl)
*/
var IncludesAllOfAssertion = /** @class */ (function () {
function IncludesAllOfAssertion(searchElements) {
this.searchElements = searchElements;
}
IncludesAllOfAssertion.prototype.assert = function (varName, testedValue, contract) {
var arrayAssert = contract(varName, testedValue).is.anArray;
if (!arrayAssert.success) {
return arrayAssert;
}
var array = testedValue;
var searchElements = this.searchElements;
return {
get success() {
return searchElements.reduce(function (result, elem) { return result && array.includes(elem); }, true);
},
get message() {
var elems = serializer.serializeAny(searchElements);
return new model_1.StandardMessage(varName, "include all of ".concat(elems), testedValue);
},
};
};
return IncludesAllOfAssertion;
}());
exports.IncludesAllOfAssertion = IncludesAllOfAssertion;
(function (IncludesAllOfAssertion) {
/**
* @author Maciej Chałapuk (maciej@chalapuk.pl)
*/
function factory(args) {
NoDsl_1.nodslArguments.check(args.length === 1, '.includesAllOf requires 1 argument (got ', args.length, ')');
NoDsl_1.nodslArguments.check(Array.isArray(args[0]), 'searchElements must be an array (got ', serializer.serializeAny(args[0]), ')');
return new IncludesAllOfAssertion(args[0]);
}
IncludesAllOfAssertion.factory = factory;
})(IncludesAllOfAssertion = exports.IncludesAllOfAssertion || (exports.IncludesAllOfAssertion = {}));
exports.IncludesAllOfAssertion = IncludesAllOfAssertion;
exports.default = IncludesAllOfAssertion;
;