HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/anvil.komma.pro/node_modules/stream-throttle/test/throttle_test.js
var async = require('async');
var Throttle = require('../index.js').Throttle;
var ThrottleGroup = require('../index.js').ThrottleGroup;

var sendStr = (function() {
    var s = '0123456789xyzXYZ?!\0åéîõü$£€*<>'; // 30 characters
    for (var i = 0, str = ''; i < 1000; i++)
        str += s;
    return str; // 30K characters
})();

var opts = {rate: 100000}; // 100 KiB/s

var testSendRecv = function(t, cb) {
    var recvStr = '';
    t.on('data', function(chunk) {
        recvStr += chunk;
    });
    t.on('end', function() {
        cb(sendStr == recvStr);
    });
    t.write(sendStr, function() {
        t.end();
    });
};

exports.testThrottle = function(test) {
    var t = new Throttle(opts);

    test.expect(1);
    testSendRecv(t, function(ok) {
        test.ok(ok, "received string should equal sent string");
        test.done();
    });
};

exports.testGroupThrottle = function(test) {
    var tg = new ThrottleGroup(opts);

    test.expect(3);
    async.each([1, 2, 3], function(i, done) {
        testSendRecv(tg.throttle(), function(ok) {
            test.ok(ok, "received string should equal sent string");
            done();
        });
    }, function() {
        test.done();
    });
};