1
+ var expect = require ( 'chai' ) . expect ;
2
+ var fs = require ( 'fs' ) ;
3
+
4
+ var exec = require ( 'child_process' ) . exec ;
5
+
6
+ function runWithInputAndExpect ( input , args , expectedOutput , done ) {
7
+ exec ( 'echo "' + input . replace ( / " / g, '\\"' ) + '" | node bin/cli.js ' + args , function callback ( error , stdout , stderr ) {
8
+ expect ( error ) . to . be . a ( 'null' ) ;
9
+ expect ( stderr ) . to . equal ( '' ) ;
10
+ expect ( stdout ) . to . equal ( expectedOutput + '\n' ) ;
11
+ done ( error ) ;
12
+ } ) ;
13
+ }
14
+
15
+ describe ( 'cli arguments' , function ( ) {
16
+ it ( 'should output nothing with empty input' , function ( done ) {
17
+ runWithInputAndExpect ( '' , '' , '' , done ) ;
18
+ } ) ;
19
+
20
+ it ( 'should not ignore images by default' , function ( done ) {
21
+ runWithInputAndExpect (
22
+ 'Hello <img alt="alt text" src="http://my.img/here.jpg">!' ,
23
+ '' ,
24
+ 'Hello alt text [http://my.img/here.jpg]!' ,
25
+ done ) ;
26
+ } ) ;
27
+
28
+ it ( 'should ignore images with --ignore-image=true' , function ( done ) {
29
+ runWithInputAndExpect (
30
+ 'Hello <img alt="alt text" src="http://my.img/here.jpg">!' ,
31
+ '--ignore-image=true' ,
32
+ 'Hello !' ,
33
+ done ) ;
34
+ } ) ;
35
+
36
+ it ( 'should not ignore href by default' , function ( done ) {
37
+ runWithInputAndExpect (
38
+ '<a href="http://my.link">test</a>' ,
39
+ '' ,
40
+ 'test [http://my.link]' ,
41
+ done ) ;
42
+ } ) ;
43
+
44
+ it ( 'should ignore href with --ignore-href=true' , function ( done ) {
45
+ runWithInputAndExpect (
46
+ '<a href="http://my.link">test</a>' ,
47
+ '--ignore-href=true' ,
48
+ 'test' ,
49
+ done ) ;
50
+ } ) ;
51
+
52
+ it ( 'should wordwrap at 80 characters by default' , function ( done ) {
53
+ runWithInputAndExpect (
54
+ ' 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789' ,
55
+ '' ,
56
+ ' 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789\n123456789' ,
57
+ done ) ;
58
+ } ) ;
59
+
60
+ it ( 'should wordwrap at 40 with --wordwrap=40' , function ( done ) {
61
+ runWithInputAndExpect (
62
+ ' 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789' ,
63
+ '--wordwrap=40' ,
64
+ ' 123456789 123456789 123456789 123456789\n123456789 123456789 123456789 123456789\n123456789' ,
65
+ done ) ;
66
+ } ) ;
67
+
68
+ it ( 'should return link with brackets by default' , function ( done ) {
69
+ runWithInputAndExpect (
70
+ '<a href="http://my.link">test</a>' ,
71
+ '' ,
72
+ 'test [http://my.link]' ,
73
+ done ) ;
74
+ } ) ;
75
+
76
+ it ( 'should return link without brackets with --noLinkBrackets=true' , function ( done ) {
77
+ runWithInputAndExpect (
78
+ '<a href="http://my.link">test</a>' ,
79
+ '--noLinkBrackets=true' ,
80
+ 'test http://my.link' ,
81
+ done ) ;
82
+ } ) ;
83
+
84
+ it ( 'should support --tables definitions with commas' , function ( done ) {
85
+ var expectedTxt = fs . readFileSync ( 'test/test.txt' , 'utf8' ) ;
86
+
87
+ function runWithArgs ( args , callback ) {
88
+ exec ( 'cat test/test.html | node bin/cli.js ' + args , callback ) ;
89
+ }
90
+
91
+ runWithArgs ( '--tables=#invoice,.address' , function callback ( error , stdout , stderr ) {
92
+ expect ( error ) . to . be . a ( 'null' ) ;
93
+ expect ( stderr ) . to . equal ( '' ) ;
94
+ expect ( stdout ) . to . equal ( expectedTxt + '\n' ) ;
95
+ done ( error ) ;
96
+ } ) ;
97
+ } ) ;
98
+ } ) ;
0 commit comments