@@ -18,7 +18,7 @@ const LOG_LEVELS = {
18
18
19
19
describe ( 'console' , ( ) => {
20
20
describe ( '.table(data, rows)' , ( ) => {
21
- it ( 'should print the passed array as a table' , ( ) => {
21
+ it ( 'should print the passed array as a Markdown table' , ( ) => {
22
22
const originalNativeLoggingHook = global . nativeLoggingHook ;
23
23
const logFn = ( global . nativeLoggingHook = jest . fn ( ) ) ;
24
24
@@ -34,20 +34,20 @@ describe('console', () => {
34
34
expect ( logFn ) . toHaveBeenCalledTimes ( 1 ) ;
35
35
expect ( logFn . mock . lastCall ) . toEqual ( [
36
36
`
37
- name | value
38
- -------| ------
39
- First | 500 \u0020
40
- Second | 600 \u0020
41
- Third | 700 \u0020
42
- Fourth | 800 ` ,
37
+ | (index) | name | value | extraValue |
38
+ | ------- | -------- | ----- | ---------- |
39
+ | 0 | ' First' | 500 | |
40
+ | 1 | ' Second' | 600 | |
41
+ | 2 | ' Third' | 700 | |
42
+ | 3 | ' Fourth' | 800 | true | `,
43
43
LOG_LEVELS . info ,
44
44
] ) ;
45
45
} finally {
46
46
global . nativeLoggingHook = originalNativeLoggingHook ;
47
47
}
48
48
} ) ;
49
49
50
- it ( 'should print the passed dictionary as a table' , ( ) => {
50
+ it ( 'should print the passed dictionary as a Markdown table' , ( ) => {
51
51
const originalNativeLoggingHook = global . nativeLoggingHook ;
52
52
const logFn = ( global . nativeLoggingHook = jest . fn ( ) ) ;
53
53
@@ -63,12 +63,102 @@ Fourth | 800 `,
63
63
expect ( logFn ) . toHaveBeenCalledTimes ( 1 ) ;
64
64
expect ( logFn . mock . lastCall ) . toEqual ( [
65
65
`
66
- (index) | name | value
67
- --------|--------|------
68
- first | First | 500 \u0020
69
- second | Second | 600 \u0020
70
- third | Third | 700 \u0020
71
- fourth | Fourth | 800 ` ,
66
+ | (index) | name | value | extraValue |
67
+ | ------- | -------- | ----- | ---------- |
68
+ | first | 'First' | 500 | |
69
+ | second | 'Second' | 600 | |
70
+ | third | 'Third' | 700 | |
71
+ | fourth | 'Fourth' | 800 | true |` ,
72
+ LOG_LEVELS . info ,
73
+ ] ) ;
74
+ } finally {
75
+ global . nativeLoggingHook = originalNativeLoggingHook ;
76
+ }
77
+ } ) ;
78
+
79
+ it ( 'should work with different types of values' , ( ) => {
80
+ const originalNativeLoggingHook = global . nativeLoggingHook ;
81
+ const logFn = ( global . nativeLoggingHook = jest . fn ( ) ) ;
82
+
83
+ // TODO: replace with `beforeEach` when supported.
84
+ try {
85
+ console . table ( [
86
+ {
87
+ string : '' ,
88
+ number : 0 ,
89
+ boolean : true ,
90
+ function : ( ) => { } ,
91
+ object : { a : 1 , b : 2 } ,
92
+ null : null ,
93
+ undefined : undefined ,
94
+ } ,
95
+ {
96
+ string : 'a' ,
97
+ number : 1 ,
98
+ boolean : true ,
99
+ function : ( ) => { } ,
100
+ object : { a : 1 , b : 2 } ,
101
+ null : null ,
102
+ undefined : undefined ,
103
+ } ,
104
+ {
105
+ string : 'aa' ,
106
+ number : 2 ,
107
+ boolean : false ,
108
+ function : ( ) => { } ,
109
+ object : { a : 1 , b : 2 } ,
110
+ null : null ,
111
+ undefined : undefined ,
112
+ } ,
113
+ {
114
+ string : 'aaa' ,
115
+ number : 3 ,
116
+ boolean : false ,
117
+ function : ( ) => { } ,
118
+ object : { a : 1 , b : 2 } ,
119
+ null : null ,
120
+ undefined : undefined ,
121
+ } ,
122
+ ] ) ;
123
+
124
+ expect ( logFn ) . toHaveBeenCalledTimes ( 1 ) ;
125
+ expect ( logFn . mock . lastCall ) . toEqual ( [
126
+ `
127
+ | (index) | string | number | boolean | function | object | null | undefined |
128
+ | ------- | ------ | ------ | ------- | -------- | ------ | ---- | --------- |
129
+ | 0 | '' | 0 | true | ƒ | {…} | null | undefined |
130
+ | 1 | 'a' | 1 | true | ƒ | {…} | null | undefined |
131
+ | 2 | 'aa' | 2 | false | ƒ | {…} | null | undefined |
132
+ | 3 | 'aaa' | 3 | false | ƒ | {…} | null | undefined |` ,
133
+ LOG_LEVELS . info ,
134
+ ] ) ;
135
+ } finally {
136
+ global . nativeLoggingHook = originalNativeLoggingHook ;
137
+ }
138
+ } ) ;
139
+
140
+ it ( 'should print the keys in all the objects' , ( ) => {
141
+ const originalNativeLoggingHook = global . nativeLoggingHook ;
142
+ const logFn = ( global . nativeLoggingHook = jest . fn ( ) ) ;
143
+
144
+ // TODO: replace with `beforeEach` when supported.
145
+ try {
146
+ console . table ( [
147
+ { name : 'foo' } ,
148
+ { name : 'bar' , value : 1 } ,
149
+ { value : 2 , surname : 'baz' } ,
150
+ { address : 'other' } ,
151
+ ] ) ;
152
+
153
+ expect ( logFn ) . toHaveBeenCalledTimes ( 1 ) ;
154
+ expect ( logFn . mock . lastCall ) . toEqual ( [
155
+ `
156
+ | (index) | name | value | surname | address |
157
+ | ------- | ----- | ----- | ------- | ------- |
158
+ | 0 | 'foo' | | | |
159
+ | 1 | 'bar' | 1 | | |
160
+ | 2 | | 2 | 'baz' | |
161
+ | 3 | | | | 'other' |` ,
72
162
LOG_LEVELS . info ,
73
163
] ) ;
74
164
} finally {
@@ -107,7 +197,7 @@ fourth | Fourth | 800 `,
107
197
} ) ;
108
198
109
199
// This test is currently failing
110
- it . skip ( 'should print an indices table for an array of empty objects' , ( ) => {
200
+ it ( 'should print an indices table for an array of empty objects' , ( ) => {
111
201
const originalNativeLoggingHook = global . nativeLoggingHook ;
112
202
const logFn = ( global . nativeLoggingHook = jest . fn ( ) ) ;
113
203
@@ -118,12 +208,12 @@ fourth | Fourth | 800 `,
118
208
expect ( logFn ) . toHaveBeenCalledTimes ( 1 ) ;
119
209
expect ( logFn . mock . lastCall ) . toEqual ( [
120
210
`
121
- (index)
122
- -------
123
- 0 \u0020
124
- 1 \u0020
125
- 2 \u0020
126
- 3 ` ,
211
+ | (index) |
212
+ | ------- |
213
+ | 0 |
214
+ | 1 |
215
+ | 2 |
216
+ | 3 | `,
127
217
LOG_LEVELS . info ,
128
218
] ) ;
129
219
} finally {
@@ -147,12 +237,12 @@ fourth | Fourth | 800 `,
147
237
expect ( logFn ) . toHaveBeenCalledTimes ( 1 ) ;
148
238
expect ( logFn . mock . lastCall ) . toEqual ( [
149
239
`
150
- (index)
151
- -------
152
- first \u0020
153
- second\u0020
154
- third \u0020
155
- fourth ` ,
240
+ | (index) |
241
+ | ------- |
242
+ | first |
243
+ | second |
244
+ | third |
245
+ | fourth | `,
156
246
LOG_LEVELS . info ,
157
247
] ) ;
158
248
} finally {
0 commit comments