diff options
Diffstat (limited to 'node_modules/cliui/test/cliui.js')
-rw-r--r-- | node_modules/cliui/test/cliui.js | 349 |
1 files changed, 0 insertions, 349 deletions
diff --git a/node_modules/cliui/test/cliui.js b/node_modules/cliui/test/cliui.js deleted file mode 100644 index 1cc6127cb..000000000 --- a/node_modules/cliui/test/cliui.js +++ /dev/null @@ -1,349 +0,0 @@ -/* global describe, it */ - -require('chai').should() - -var cliui = require('../') - -describe('cliui', function () { - describe('div', function () { - it("wraps text at 'width' if a single column is given", function () { - var ui = cliui({ - width: 10 - }) - - ui.div('i am a string that should be wrapped') - - ui.toString().split('\n').forEach(function (row) { - row.length.should.be.lte(10) - }) - }) - - it('evenly divides text across columns if multiple columns are given', function () { - var ui = cliui({ - width: 40 - }) - - ui.div( - {text: 'i am a string that should be wrapped', width: 15}, - 'i am a second string that should be wrapped', - 'i am a third string that should be wrapped' - ) - - // total width of all columns is <= - // the width cliui is initialized with. - ui.toString().split('\n').forEach(function (row) { - row.length.should.be.lte(40) - }) - - // it should wrap each column appropriately. - var expected = [ - 'i am a string i am a i am a third', - 'that should be second string that', - 'wrapped string that should be', - ' should be wrapped', - ' wrapped' - ] - - ui.toString().split('\n').should.eql(expected) - }) - - it('allows for a blank row to be appended', function () { - var ui = cliui({ - width: 40 - }) - - ui.div() - - // it should wrap each column appropriately. - var expected = [''] - - ui.toString().split('\n').should.eql(expected) - }) - }) - - describe('_columnWidths', function () { - it('uses same width for each column by default', function () { - var ui = cliui({ - width: 40 - }), - widths = ui._columnWidths([{}, {}, {}]) - - widths[0].should.equal(13) - widths[1].should.equal(13) - widths[2].should.equal(13) - }) - - it('divides width over remaining columns if first column has width specified', function () { - var ui = cliui({ - width: 40 - }), - widths = ui._columnWidths([{width: 20}, {}, {}]) - - widths[0].should.equal(20) - widths[1].should.equal(10) - widths[2].should.equal(10) - }) - - it('divides width over remaining columns if middle column has width specified', function () { - var ui = cliui({ - width: 40 - }), - widths = ui._columnWidths([{}, {width: 10}, {}]) - - widths[0].should.equal(15) - widths[1].should.equal(10) - widths[2].should.equal(15) - }) - - it('keeps track of remaining width if multiple columns have width specified', function () { - var ui = cliui({ - width: 40 - }), - widths = ui._columnWidths([{width: 20}, {width: 12}, {}]) - - widths[0].should.equal(20) - widths[1].should.equal(12) - widths[2].should.equal(8) - }) - - it('uses a sane default if impossible widths are specified', function () { - var ui = cliui({ - width: 40 - }), - widths = ui._columnWidths([{width: 30}, {width: 30}, {padding: [0, 2, 0, 1]}]) - - widths[0].should.equal(30) - widths[1].should.equal(30) - widths[2].should.equal(4) - }) - }) - - describe('alignment', function () { - it('allows a column to be right aligned', function () { - var ui = cliui({ - width: 40 - }) - - ui.div( - 'i am a string', - {text: 'i am a second string', align: 'right'}, - 'i am a third string that should be wrapped' - ) - - // it should right-align the second column. - var expected = [ - 'i am a stringi am a secondi am a third', - ' stringstring that', - ' should be', - ' wrapped' - ] - - ui.toString().split('\n').should.eql(expected) - }) - - it('allows a column to be center aligned', function () { - var ui = cliui({ - width: 60 - }) - - ui.div( - 'i am a string', - {text: 'i am a second string', align: 'center', padding: [0, 2, 0, 2]}, - 'i am a third string that should be wrapped' - ) - - // it should right-align the second column. - var expected = [ - 'i am a string i am a second i am a third string', - ' string that should be', - ' wrapped' - ] - - ui.toString().split('\n').should.eql(expected) - }) - }) - - describe('padding', function () { - it('handles left/right padding', function () { - var ui = cliui({ - width: 40 - }) - - ui.div( - {text: 'i have padding on my left', padding: [0, 0, 0, 4]}, - {text: 'i have padding on my right', padding: [0, 2, 0, 0], align: 'center'}, - {text: 'i have no padding', padding: [0, 0, 0, 0]} - ) - - // it should add left/right padding to columns. - var expected = [ - ' i have i have i have no', - ' padding padding on padding', - ' on my my right', - ' left' - ] - - ui.toString().split('\n').should.eql(expected) - }) - - it('handles top/bottom padding', function () { - var ui = cliui({ - width: 40 - }) - - ui.div( - 'i am a string', - {text: 'i am a second string', padding: [2, 0, 0, 0]}, - {text: 'i am a third string that should be wrapped', padding: [0, 0, 1, 0]} - ) - - // it should add top/bottom padding to second - // and third columns. - var expected = [ - 'i am a string i am a third', - ' string that', - ' i am a secondshould be', - ' string wrapped', - '' - ] - - ui.toString().split('\n').should.eql(expected) - }) - }) - - describe('wrap', function () { - it('allows wordwrap to be disabled', function () { - var ui = cliui({ - wrap: false - }) - - ui.div( - {text: 'i am a string', padding: [0, 1, 0, 0]}, - {text: 'i am a second string', padding: [0, 2, 0, 0]}, - {text: 'i am a third string that should not be wrapped', padding: [0, 0, 0, 2]} - ) - - ui.toString().should.equal('i am a string i am a second string i am a third string that should not be wrapped') - }) - }) - - describe('span', function () { - it('appends the next row to the end of the prior row if it fits', function () { - var ui = cliui({ - width: 40 - }) - - ui.span( - {text: 'i am a string that will be wrapped', width: 30} - ) - - ui.div( - {text: ' [required] [default: 99]', align: 'right'} - ) - - var expected = [ - 'i am a string that will be', - 'wrapped [required] [default: 99]' - ] - - ui.toString().split('\n').should.eql(expected) - }) - - it('does not append the string if it does not fit on the prior row', function () { - var ui = cliui({ - width: 40 - }) - - ui.span( - {text: 'i am a string that will be wrapped', width: 30} - ) - - ui.div( - {text: 'i am a second row', align: 'left'} - ) - - var expected = [ - 'i am a string that will be', - 'wrapped', - 'i am a second row' - ] - - ui.toString().split('\n').should.eql(expected) - }) - - it('always appends text to prior span if wrap is disabled', function () { - var ui = cliui({ - wrap: false, - width: 40 - }) - - ui.span( - {text: 'i am a string that will be wrapped', width: 30} - ) - - ui.div( - {text: 'i am a second row', align: 'left', padding: [0, 0, 0, 3]} - ) - - ui.div('a third line') - - var expected = [ - 'i am a string that will be wrapped i am a second row', - 'a third line' - ] - - ui.toString().split('\n').should.eql(expected) - }) - }) - - describe('layoutDSL', function () { - it('turns tab into multiple columns', function () { - var ui = cliui({ - width: 60 - }) - - ui.div( - ' <regex> \tmy awesome regex\n <my second thing> \tanother row\t a third column' - ) - - var expected = [ - ' <regex> my awesome regex', - ' <my second thing> another row a third column' - ] - - ui.toString().split('\n').should.eql(expected) - }) - - it('turns newline into multiple rows', function () { - var ui = cliui({ - width: 40 - }) - - ui.div( - 'Usage: $0\n <regex>\t my awesome regex\n <glob>\t my awesome glob\t [required]' - ) - var expected = [ - 'Usage: $0', - ' <regex> my awesome regex', - ' <glob> my awesome [required]', - ' glob' - ] - - ui.toString().split('\n').should.eql(expected) - }) - - it('does not apply DSL if wrap is false', function () { - var ui = cliui({ - width: 40, - wrap: false - }) - - ui.div( - 'Usage: $0\ttwo\tthree' - ) - - ui.toString().should.eql('Usage: $0\ttwo\tthree') - }) - - }) -}) |