tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

limiter.test.js (911B)


      1 'use strict';
      2 
      3 const assert = require('assert');
      4 
      5 const Limiter = require('../lib/limiter');
      6 
      7 describe('Limiter', () => {
      8  describe('#ctor', () => {
      9    it('takes a `concurrency` argument', () => {
     10      const limiter = new Limiter(0);
     11 
     12      assert.strictEqual(limiter.concurrency, Infinity);
     13    });
     14  });
     15 
     16  describe('#kRun', () => {
     17    it('limits the number of jobs allowed to run concurrently', (done) => {
     18      const limiter = new Limiter(1);
     19 
     20      limiter.add((callback) => {
     21        setImmediate(() => {
     22          callback();
     23 
     24          assert.strictEqual(limiter.jobs.length, 0);
     25          assert.strictEqual(limiter.pending, 1);
     26        });
     27      });
     28 
     29      limiter.add((callback) => {
     30        setImmediate(() => {
     31          callback();
     32 
     33          assert.strictEqual(limiter.pending, 0);
     34          done();
     35        });
     36      });
     37 
     38      assert.strictEqual(limiter.jobs.length, 1);
     39    });
     40  });
     41 });