UNPKG

rail

Version:

An enhanced HTTP/RESTful API Client

98 lines (71 loc) 2.49 kB
'use strict'; /* global suite: false, setup: false, test: false, teardown: false, suiteSetup: false, suiteTeardown: false */ var assert = require('assert'); var crypto = require('crypto'); var common = require('./common'); var RAIL = require('../'); suite('replay-buffer', function() { test('push', function() { var buffer = new RAIL.ReplayBuffer(); assert.strictEqual(buffer.length, 0); assert.strictEqual(buffer.chunks.length, 0); var more = buffer.push(new Buffer('123')); assert(more); assert.strictEqual(buffer.length, 3); assert.strictEqual(buffer.chunks.length, 1); }); test('push - bailout', function() { var buffer = new RAIL.ReplayBuffer(5); var more; more = buffer.push(new Buffer('123')); assert(more); assert.strictEqual(buffer.length, 3); assert.strictEqual(buffer.chunks.length, 1); assert.strictEqual(buffer.chunks[0].length, 3); more = buffer.push(new Buffer('456')); assert(!more); assert.strictEqual(buffer.length, 6); assert.strictEqual(buffer.chunks.length, 2); more = buffer.push(new Buffer('789')); assert(!more); assert.strictEqual(buffer.length, 9); assert.strictEqual(buffer.chunks.length, 3); }); test('push - bailout - writable', function(done) { var buffer = new RAIL.ReplayBuffer(2055); var writable = new common.Writable(); buffer.push(crypto.randomBytes(256)); buffer.push(crypto.randomBytes(256)); buffer.push(crypto.randomBytes(256)); buffer.push(crypto.randomBytes(256)); buffer.push(crypto.randomBytes(256)); buffer.push(crypto.randomBytes(256)); buffer.push(crypto.randomBytes(256)); buffer.push(crypto.randomBytes(256)); assert.strictEqual(buffer.length, 2048); buffer.pipe(writable, function() { var more; assert.strictEqual(writable.chunks.length, 8); assert.strictEqual(writable.chunks[0].length, 256); more = buffer.push(new Buffer('456')); assert(more); more = buffer.push(new Buffer('789')); assert(more); more = buffer.push(new Buffer('0ab')); assert(!more); assert(buffer.bailout); buffer.dump(); assert.strictEqual(buffer.length, 0); assert.strictEqual(buffer.chunks.length, 0); done(); }); }); test('push - end', function() { var buffer = new RAIL.ReplayBuffer(); buffer.end(); assert.throws(function() { buffer.push(new Buffer('123')); }); }); });