UNPKG

offensive

Version:

Fast and boilerplate-free precondition checks for javascript.

50 lines (49 loc) 2.11 kB
"use strict"; 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;