UNPKG

@zkochan/pnpm

Version:

A fast implementation of npm install

102 lines (80 loc) 2.34 kB
var flatten = require('../'); var lab = require('lab'); var describe = lab.experiment; var it = lab.test; var expect = lab.expect; describe('flattening', function () { it('flattens any number of normal values passed into function', function (done) { function tester () { var args = flatten('arg1', 'arg2'); expect(args).to.eql(['arg1', 'arg2']); done(); } tester(); }); it('flattens a single array', function (done) { function tester () { var args = flatten(['arg1', 'arg2']); expect(args).to.eql(['arg1', 'arg2']); done(); } tester(); }); it('flattens arrays of arrays', function (done) { function tester () { var args = flatten([['arg1', 'arg2'], 'arg3']); expect(args).to.eql(['arg1', 'arg2', 'arg3']); done(); } tester(); }); it('flattens a combination of arrays and strings', function (done) { function tester () { var args = flatten(arguments); expect(args).to.eql(['arg1', 'arg2', 'arg3']); done(); } tester(['arg1', 'arg2'], 'arg3'); }); it('flattens an arguments array to a flat array', function (done) { function tester () { var args = flatten(arguments); expect(args).to.eql(['arg1', 'arg2']); done(); } tester('arg1', 'arg2'); }); it('flattens an arguments array of nested arrays', function (done) { function tester () { var args = flatten(arguments); expect(args).to.eql(['arg1', 'arg2', 'arg3']); done(); } tester([['arg1', 'arg2'], 'arg3']); }); it('flattens an arguments array when passed through another function', function (done) { function tester () { var args = flatten(arguments); expect(args).to.eql(['arg1', 'arg2']); done(); } function passer () { tester(arguments); } passer(['arg1', 'arg2']); }); it('flattens an arguments array when passed through "N" number of functions', function (done) { function tester () { var args = flatten(arguments); expect(args).to.eql(['arg1', 'arg2']); done(); } function passer2 () { tester(arguments); } function passer1 () { passer2(arguments); } passer1(['arg1', 'arg2']); }); });