HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode-site/node_modules/ext/test/promise/limit.js
"use strict";

var assert = require("chai").assert
  , wait   = require("timers-ext/promise/sleep")
  , limit  = require("../../promise/limit").bind(Promise);

describe("promise/limit", function () {
	it("Should limit executions", function () {
		var count = 0;
		var callCount = 0;
		var limited = limit(2, function (arg1) {
			var id = ++count;
			assert.equal(arg1, "foo");
			assert.equal(arguments[1], id);
			return wait(10).then(function () { return id; });
		});
		limited("foo", ++callCount);
		assert.equal(count, 1);
		limited("foo", ++callCount);
		assert.equal(count, 2);
		limited("foo", ++callCount);
		assert.equal(count, 2);
		limited("foo", ++callCount);
		assert.equal(count, 2);
		return wait(25).then(function () {
			assert.equal(count, 4);
			limited("foo", ++callCount);
			assert.equal(count, 5);
			limited("foo", ++callCount);
			assert.equal(count, 6);
			limited("foo", ++callCount);
			assert.equal(count, 6);
			return wait(25).then(function () { assert.equal(count, 7); });
		});
	});

	it("Should resolve with expected result", function () {
		var count = 0;
		var limited = limit(2, function () {
			var id = ++count;
			return wait(10).then(function () { return id; });
		});
		limited();
		assert.equal(count, 1);
		limited();
		assert.equal(count, 2);
		return limited().then(function (result) {
			assert.equal(result, 3);
			limited().then(function (result) { assert.equal(result, 4); });
		});
	});
});