"use strict"; var assert = require("@sinonjs/referee-sinon").assert; var sinon = require("@sinonjs/referee-sinon").sinon; var every = require("./every"); describe("util/core/every", function () { it("returns true when the callback function returns true for every element in an iterable", function () { var obj = [true, true, true, true]; var allTrue = every(obj, function (val) { return val; }); assert(allTrue); }); it("returns false when the callback function returns false for any element in an iterable", function () { var obj = [true, true, true, false]; var result = every(obj, function (val) { return val; }); assert.isFalse(result); }); it("calls the given callback once for each item in an iterable until it returns false", function () { var iterableOne = [true, true, true, true]; var iterableTwo = [true, true, false, true]; var callback = sinon.spy(function (val) { return val; }); every(iterableOne, callback); assert.equals(callback.callCount, 4); callback.resetHistory(); every(iterableTwo, callback); assert.equals(callback.callCount, 3); }); });