'use strict'; var Buffer = require('../../').Buffer; var assert = require('assert'); var zero = []; var one = [ Buffer.from('asdf') ]; var long = []; for (var i = 0; i < 10; i++) long.push(Buffer.from('asdf')); var flatZero = Buffer.concat(zero); var flatOne = Buffer.concat(one); var flatLong = Buffer.concat(long); var flatLongLen = Buffer.concat(long, 40); assert(flatZero.length === 0); assert(flatOne.toString() === 'asdf'); // A special case where concat used to return the first item, // if the length is one. This check is to make sure that we don't do that. assert(flatOne !== one[0]); assert(flatLong.toString() === (new Array(10 + 1).join('asdf'))); assert(flatLongLen.toString() === (new Array(10 + 1).join('asdf'))); assertWrongList(); assertWrongList(null); assertWrongList(Buffer.from('hello')); assertWrongList([42]); assertWrongList(['hello', 'world']); assertWrongList(['hello', Buffer.from('world')]); function assertWrongList(value) { assert.throws(function() { Buffer.concat(value); }, function(err) { return err instanceof TypeError && err.message === '"list" argument must be an Array of Buffers'; }); }