-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
19 changed files
with
1,574 additions
and
1,805 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,208 +2,200 @@ var Table = require('../src/table'); | |
var colors = require('colors/safe'); | ||
|
||
module.exports = function(runTest) { | ||
|
||
function it(name, fn) { | ||
var result = fn(); | ||
runTest(name, result[0], result[1], result[2]); | ||
} | ||
|
||
it('Basic Usage',function(){ | ||
function makeTable(){ | ||
it('Basic Usage', function() { | ||
function makeTable() { | ||
// By default, headers will be red, and borders will be grey | ||
var table = new Table({head:['a','b']}); | ||
var table = new Table({ head: ['a', 'b'] }); | ||
|
||
table.push(['c','d']); | ||
table.push(['c', 'd']); | ||
|
||
return table; | ||
} | ||
|
||
var expected = [ | ||
colors.gray('┌───') + colors.gray('┬───┐') | ||
, colors.gray('│') + colors.red(' a ') + colors.gray('│') + colors.red(' b ') + colors.gray('│') | ||
, colors.gray('├───') + colors.gray('┼───┤') | ||
, colors.gray('│') + (' c ') + colors.gray('│') + (' d ') + colors.gray('│') | ||
, colors.gray('└───') + colors.gray('┴───┘') | ||
colors.gray('┌───') + colors.gray('┬───┐'), | ||
colors.gray('│') + colors.red(' a ') + colors.gray('│') + colors.red(' b ') + colors.gray('│'), | ||
colors.gray('├───') + colors.gray('┼───┤'), | ||
colors.gray('│') + ' c ' + colors.gray('│') + ' d ' + colors.gray('│'), | ||
colors.gray('└───') + colors.gray('┴───┘'), | ||
]; | ||
|
||
return [makeTable,expected,'basic-usage-with-colors']; | ||
return [makeTable, expected, 'basic-usage-with-colors']; | ||
}); | ||
|
||
it('Basic Usage - disable colors - (used often in the examples and tests)', function (){ | ||
function makeTable(){ | ||
it('Basic Usage - disable colors - (used often in the examples and tests)', function() { | ||
function makeTable() { | ||
// For most of these examples, and most of the unit tests we disable colors. | ||
// It makes unit tests easier to write/understand, and allows these pages to | ||
// display the examples as text instead of screen shots. | ||
var table = new Table({ | ||
head: ['Rel', 'Change', 'By', 'When'] | ||
, style: { | ||
head: [] //disable colors in header cells | ||
, border: [] //disable colors for the border | ||
} | ||
, colWidths: [6, 21, 25, 17] //set the widths of each column (optional) | ||
head: ['Rel', 'Change', 'By', 'When'], | ||
style: { | ||
head: [], //disable colors in header cells | ||
border: [], //disable colors for the border | ||
}, | ||
colWidths: [6, 21, 25, 17], //set the widths of each column (optional) | ||
}); | ||
|
||
table.push( | ||
['v0.1', 'Testing something cool', '[email protected]', '7 minutes ago'] | ||
, ['v0.1', 'Testing something cool', '[email protected]', '8 minutes ago'] | ||
['v0.1', 'Testing something cool', '[email protected]', '7 minutes ago'], | ||
['v0.1', 'Testing something cool', '[email protected]', '8 minutes ago'] | ||
); | ||
|
||
return table; | ||
} | ||
|
||
var expected = [ | ||
'┌──────┬─────────────────────┬─────────────────────────┬─────────────────┐' | ||
, '│ Rel │ Change │ By │ When │' | ||
, '├──────┼─────────────────────┼─────────────────────────┼─────────────────┤' | ||
, '│ v0.1 │ Testing something … │ [email protected] │ 7 minutes ago │' | ||
, '├──────┼─────────────────────┼─────────────────────────┼─────────────────┤' | ||
, '│ v0.1 │ Testing something … │ [email protected] │ 8 minutes ago │' | ||
, '└──────┴─────────────────────┴─────────────────────────┴─────────────────┘' | ||
'┌──────┬─────────────────────┬─────────────────────────┬─────────────────┐', | ||
'│ Rel │ Change │ By │ When │', | ||
'├──────┼─────────────────────┼─────────────────────────┼─────────────────┤', | ||
'│ v0.1 │ Testing something … │ [email protected] │ 7 minutes ago │', | ||
'├──────┼─────────────────────┼─────────────────────────┼─────────────────┤', | ||
'│ v0.1 │ Testing something … │ [email protected] │ 8 minutes ago │', | ||
'└──────┴─────────────────────┴─────────────────────────┴─────────────────┘', | ||
]; | ||
|
||
return [makeTable,expected]; | ||
return [makeTable, expected]; | ||
}); | ||
|
||
it('Create vertical tables by adding objects a that specify key-value pairs', function() { | ||
function makeTable(){ | ||
var table = new Table({ style: {'padding-left':0, 'padding-right':0, head:[], border:[]} }); | ||
function makeTable() { | ||
var table = new Table({ | ||
style: { 'padding-left': 0, 'padding-right': 0, head: [], border: [] }, | ||
}); | ||
|
||
table.push( | ||
{'v0.1': 'Testing something cool'} | ||
, {'v0.1': 'Testing something cool'} | ||
); | ||
table.push({ 'v0.1': 'Testing something cool' }, { 'v0.1': 'Testing something cool' }); | ||
|
||
return table; | ||
} | ||
|
||
var expected = [ | ||
'┌────┬──────────────────────┐' | ||
, '│v0.1│Testing something cool│' | ||
, '├────┼──────────────────────┤' | ||
, '│v0.1│Testing something cool│' | ||
, '└────┴──────────────────────┘' | ||
'┌────┬──────────────────────┐', | ||
'│v0.1│Testing something cool│', | ||
'├────┼──────────────────────┤', | ||
'│v0.1│Testing something cool│', | ||
'└────┴──────────────────────┘', | ||
]; | ||
|
||
return [makeTable,expected]; | ||
return [makeTable, expected]; | ||
}); | ||
|
||
it('Cross tables are similar to vertical tables, but include an empty string for the first header', function() { | ||
function makeTable(){ | ||
var table = new Table({ head: ["", "Header 1", "Header 2"], style: {'padding-left':0, 'padding-right':0, head:[], border:[]} }); // clear styles to prevent color output | ||
function makeTable() { | ||
var table = new Table({ | ||
head: ['', 'Header 1', 'Header 2'], | ||
style: { 'padding-left': 0, 'padding-right': 0, head: [], border: [] }, | ||
}); // clear styles to prevent color output | ||
|
||
table.push( | ||
{"Header 3": ['v0.1', 'Testing something cool'] } | ||
, {"Header 4": ['v0.1', 'Testing something cool'] } | ||
{ 'Header 3': ['v0.1', 'Testing something cool'] }, | ||
{ 'Header 4': ['v0.1', 'Testing something cool'] } | ||
); | ||
|
||
return table; | ||
} | ||
|
||
var expected = [ | ||
'┌────────┬────────┬──────────────────────┐' | ||
, '│ │Header 1│Header 2 │' | ||
, '├────────┼────────┼──────────────────────┤' | ||
, '│Header 3│v0.1 │Testing something cool│' | ||
, '├────────┼────────┼──────────────────────┤' | ||
, '│Header 4│v0.1 │Testing something cool│' | ||
, '└────────┴────────┴──────────────────────┘' | ||
'┌────────┬────────┬──────────────────────┐', | ||
'│ │Header 1│Header 2 │', | ||
'├────────┼────────┼──────────────────────┤', | ||
'│Header 3│v0.1 │Testing something cool│', | ||
'├────────┼────────┼──────────────────────┤', | ||
'│Header 4│v0.1 │Testing something cool│', | ||
'└────────┴────────┴──────────────────────┘', | ||
]; | ||
|
||
return [makeTable,expected]; | ||
return [makeTable, expected]; | ||
}); | ||
|
||
it('Stylize the table with custom border characters', function (){ | ||
function makeTable(){ | ||
it('Stylize the table with custom border characters', function() { | ||
function makeTable() { | ||
var table = new Table({ | ||
chars: { | ||
'top': '═' | ||
, 'top-mid': '╤' | ||
, 'top-left': '╔' | ||
, 'top-right': '╗' | ||
, 'bottom': '═' | ||
, 'bottom-mid': '╧' | ||
, 'bottom-left': '╚' | ||
, 'bottom-right': '╝' | ||
, 'left': '║' | ||
, 'left-mid': '╟' | ||
, 'right': '║' | ||
, 'right-mid': '╢' | ||
top: '═', | ||
'top-mid': '╤', | ||
'top-left': '╔', | ||
'top-right': '╗', | ||
bottom: '═', | ||
'bottom-mid': '╧', | ||
'bottom-left': '╚', | ||
'bottom-right': '╝', | ||
left: '║', | ||
'left-mid': '╟', | ||
right: '║', | ||
'right-mid': '╢', | ||
}, | ||
style: { | ||
head: [] | ||
, border: [] | ||
} | ||
head: [], | ||
border: [], | ||
}, | ||
}); | ||
|
||
table.push( | ||
['foo', 'bar', 'baz'] | ||
, ['frob', 'bar', 'quuz'] | ||
); | ||
table.push(['foo', 'bar', 'baz'], ['frob', 'bar', 'quuz']); | ||
|
||
return table; | ||
} | ||
|
||
var expected = [ | ||
'╔══════╤═════╤══════╗' | ||
, '║ foo │ bar │ baz ║' | ||
, '╟──────┼─────┼──────╢' | ||
, '║ frob │ bar │ quuz ║' | ||
, '╚══════╧═════╧══════╝' | ||
'╔══════╤═════╤══════╗', | ||
'║ foo │ bar │ baz ║', | ||
'╟──────┼─────┼──────╢', | ||
'║ frob │ bar │ quuz ║', | ||
'╚══════╧═════╧══════╝', | ||
]; | ||
|
||
return [makeTable,expected]; | ||
return [makeTable, expected]; | ||
}); | ||
|
||
it('Use ansi colors (i.e. colors.js) to style text within the cells at will, even across multiple lines',function(){ | ||
function makeTable(){ | ||
var table = new Table({style:{border:[],header:[]}}); | ||
it('Use ansi colors (i.e. colors.js) to style text within the cells at will, even across multiple lines', function() { | ||
function makeTable() { | ||
var table = new Table({ style: { border: [], header: [] } }); | ||
|
||
table.push([ | ||
colors.red('Hello\nhow\nare\nyou?'), | ||
colors.blue('I\nam\nfine\nthanks!') | ||
]); | ||
table.push([colors.red('Hello\nhow\nare\nyou?'), colors.blue('I\nam\nfine\nthanks!')]); | ||
|
||
return table; | ||
} | ||
|
||
var expected = [ | ||
'┌───────┬─────────┐' | ||
, '│ ' + colors.red('Hello') + ' │ ' + colors.blue('I') + ' │' | ||
, '│ ' + colors.red('how') + ' │ ' + colors.blue('am') + ' │' | ||
, '│ ' + colors.red('are') + ' │ ' + colors.blue('fine') + ' │' | ||
, '│ ' + colors.red('you?') + ' │ ' + colors.blue('thanks!') + ' │' | ||
, '└───────┴─────────┘' | ||
'┌───────┬─────────┐', | ||
'│ ' + colors.red('Hello') + ' │ ' + colors.blue('I') + ' │', | ||
'│ ' + colors.red('how') + ' │ ' + colors.blue('am') + ' │', | ||
'│ ' + colors.red('are') + ' │ ' + colors.blue('fine') + ' │', | ||
'│ ' + colors.red('you?') + ' │ ' + colors.blue('thanks!') + ' │', | ||
'└───────┴─────────┘', | ||
]; | ||
|
||
return [makeTable,expected,'multi-line-colors']; | ||
return [makeTable, expected, 'multi-line-colors']; | ||
}); | ||
|
||
it('Set `wordWrap` to true to make lines of text wrap instead of being truncated',function(){ | ||
function makeTable(){ | ||
it('Set `wordWrap` to true to make lines of text wrap instead of being truncated', function() { | ||
function makeTable() { | ||
var table = new Table({ | ||
style:{border:[],header:[]}, | ||
colWidths:[7,9], | ||
wordWrap:true | ||
style: { border: [], header: [] }, | ||
colWidths: [7, 9], | ||
wordWrap: true, | ||
}); | ||
|
||
table.push([ | ||
'Hello how are you?', | ||
'I am fine thanks!' | ||
]); | ||
table.push(['Hello how are you?', 'I am fine thanks!']); | ||
|
||
return table; | ||
} | ||
|
||
var expected = [ | ||
'┌───────┬─────────┐' | ||
, '│ Hello │ I am │' | ||
, '│ how │ fine │' | ||
, '│ are │ thanks! │' | ||
, '│ you? │ │' | ||
, '└───────┴─────────┘' | ||
'┌───────┬─────────┐', | ||
'│ Hello │ I am │', | ||
'│ how │ fine │', | ||
'│ are │ thanks! │', | ||
'│ you? │ │', | ||
'└───────┴─────────┘', | ||
]; | ||
|
||
return [makeTable,expected]; | ||
return [makeTable, expected]; | ||
}); | ||
}; | ||
|
||
|
@@ -219,4 +211,4 @@ module.exports = function(runTest) { | |
, '│ │ … │ │ │' | ||
, '└──┴───┴──┴──┘' | ||
]; | ||
*/ | ||
*/ |
Oops, something went wrong.