1 | import test from 'ava';
|
2 | import chalk from 'chalk';
|
3 | import stripAnsi from 'strip-ansi';
|
4 | import columns from './index';
|
5 |
|
6 | test('should print one column list', t => {
|
7 | const cols = columns(['foo', ['bar', 'baz'], ['bar', 'qux']], {
|
8 | width: 1
|
9 | });
|
10 |
|
11 | const expected =
|
12 | 'bar\n' +
|
13 | 'bar\n' +
|
14 | 'baz\n' +
|
15 | 'foo\n' +
|
16 | 'qux';
|
17 |
|
18 | t.is(cols, expected);
|
19 | });
|
20 |
|
21 | test('should print three column list', t => {
|
22 | const cols = columns(['foo', ['bar', 'baz'], ['bat', 'qux']], {
|
23 | width: 16
|
24 | });
|
25 |
|
26 | const expected =
|
27 | 'bar baz qux \n' +
|
28 | 'bat foo ';
|
29 |
|
30 | t.is(cols, expected);
|
31 | });
|
32 |
|
33 | test('should print complex list', t => {
|
34 | const cols = columns(
|
35 | [
|
36 | 'foo', 'bar', 'baz',
|
37 | chalk.cyan('嶜憃撊') + ' 噾噿嚁',
|
38 | 'blue' + chalk.bgBlue('berry'),
|
39 | chalk.red('apple'), 'pomegranate',
|
40 | 'durian', chalk.green('star fruit'),
|
41 | 'apricot', 'banana pineapple'
|
42 | ],
|
43 | {
|
44 | width: 80
|
45 | }
|
46 | );
|
47 |
|
48 | const expected =
|
49 | 'apple bar durian star fruit \n' +
|
50 | 'apricot baz foo 嶜憃撊 噾噿嚁 \n' +
|
51 | 'banana pineapple blueberry pomegranate ';
|
52 |
|
53 | t.is(stripAnsi(cols), expected);
|
54 | });
|
55 |
|
56 | test('should optionally not sort', t => {
|
57 | const cols = columns(
|
58 | [
|
59 | 'foo', 'bar', 'baz',
|
60 | chalk.cyan('嶜憃撊') + ' 噾噿嚁',
|
61 | 'blue' + chalk.bgBlue('berry'),
|
62 | chalk.red('apple'), 'pomegranate',
|
63 | 'durian', chalk.green('star fruit'),
|
64 | 'apricot', 'banana pineapple'
|
65 | ],
|
66 | {
|
67 | sort: false,
|
68 | width: 80
|
69 | }
|
70 | );
|
71 |
|
72 | const expected =
|
73 | 'foo 嶜憃撊 噾噿嚁 pomegranate apricot \n' +
|
74 | 'bar blueberry durian banana pineapple \n' +
|
75 | 'baz apple star fruit ';
|
76 |
|
77 | t.is(stripAnsi(cols), expected);
|
78 | });
|