1
1
'use strict' ;
2
- /*global describe:true, it: true, after: true */
3
- var nodemon = require ( '../../lib/' ) ,
4
- assert = require ( 'assert' ) ,
5
- fs = require ( 'fs' ) ,
6
- path = require ( 'path' ) ,
7
- touch = require ( 'touch' ) ,
8
- crypto = require ( 'crypto' ) ;
2
+ /*global describe:true, it: true, after: true, beforeEach */
3
+ var nodemon = require ( '../../lib/' ) ;
4
+ var assert = require ( 'assert' ) ;
5
+ var fs = require ( 'fs' ) ;
6
+ var path = require ( 'path' ) ;
7
+ var touch = require ( 'touch' ) ;
8
+ var crypto = require ( 'crypto' ) ;
9
+
10
+ function rnd ( ) {
11
+ return crypto . randomBytes ( 16 ) . toString ( 'hex' ) ;
12
+ }
9
13
10
14
describe ( 'when nodemon runs (2)' , function ( ) {
11
- var tmp = path . resolve ( 'test/fixtures/test' + crypto . randomBytes ( 16 ) . toString ( 'hex' ) + '.js' ) ;
15
+ var tmp = path . resolve ( 'test/fixtures/test' + rnd ( ) + '.js' ) ;
12
16
13
17
after ( function ( done ) {
14
18
fs . unlink ( tmp ) ;
@@ -23,10 +27,26 @@ describe('when nodemon runs (2)', function () {
23
27
nodemon . reset ( done ) ;
24
28
} ) ;
25
29
30
+ it ( 'should restart when new files are added' , function ( done ) {
31
+ fs . writeFileSync ( tmp , 'setTimeout(true, 10000)' ) ;
32
+ var tmp2 = path . resolve ( 'test/fixtures/test' + rnd ( ) + '-added.js' ) ;
33
+
34
+ nodemon ( {
35
+ script : tmp ,
36
+ } ) . on ( 'start' , function ( ) {
37
+ setTimeout ( function ( ) {
38
+ fs . writeFileSync ( tmp2 , 'setTimeout(true, 10000)' ) ;
39
+ } , 500 ) ;
40
+ } ) . on ( 'restart' , function ( ) {
41
+ assert ( true , 'restarted after new file was added' ) ;
42
+ nodemon . once ( 'exit' , done ) . emit ( 'quit' ) ;
43
+ } ) ;
44
+ } ) ;
45
+
26
46
it ( 'should wait when the script crashes' , function ( done ) {
27
47
fs . writeFileSync ( tmp , 'throw Error("forced crash")' ) ;
28
48
29
- nodemon ( { script : tmp } ) . on ( 'crash' , function ( ) {
49
+ nodemon ( { script : tmp , stdout : false } ) . on ( 'crash' , function ( ) {
30
50
assert ( true , 'detected crashed state' ) ;
31
51
32
52
setTimeout ( function ( ) {
@@ -65,8 +85,9 @@ describe('when nodemon runs (2)', function () {
65
85
var stdoutTestData = 'outputting some data' ;
66
86
var stderrTestData = 'outputting an error' ;
67
87
68
- var script = 'setTimeout(function () { console.log("' + stdoutTestData + '"); }, 5);' +
69
- 'setTimeout(function () { console.error("' + stderrTestData + '"); }, 10);' ;
88
+ var script = 'setTimeout(function () { console.log("' + stdoutTestData +
89
+ '"); }, 5); setTimeout(function () { console.error("' + stderrTestData +
90
+ '"); }, 10);' ;
70
91
71
92
fs . writeFileSync ( tmp , script ) ;
72
93
@@ -78,8 +99,7 @@ describe('when nodemon runs (2)', function () {
78
99
79
100
nodemon ( {
80
101
script : tmp ,
81
- stdout : false
82
-
102
+ stdout : false ,
83
103
} ) . on ( 'crash' , function ( ) {
84
104
assert ( false , 'detected crashed state' ) ;
85
105
@@ -96,8 +116,10 @@ describe('when nodemon runs (2)', function () {
96
116
var stdoutWritableResult = fs . readFileSync ( stdoutFileName ) ;
97
117
var stderrWritableResult = fs . readFileSync ( stderrFileName ) ;
98
118
99
- assert ( stdoutWritableResult === stdoutTestData , 'stdout has been piped correctly' ) ;
100
- assert ( stderrWritableResult === stderrTestData , 'stderr has been piped correctly' ) ;
119
+ assert ( stdoutWritableResult === stdoutTestData ,
120
+ 'stdout has been piped correctly' ) ;
121
+ assert ( stderrWritableResult === stderrTestData ,
122
+ 'stderr has been piped correctly' ) ;
101
123
102
124
this . emit ( 'quit' ) ;
103
125
@@ -112,7 +134,8 @@ describe('when nodemon runs (2)', function () {
112
134
} ) ;
113
135
} ) ;
114
136
115
- it ( 'should not run command on startup if runOnChangeOnly is true' , function ( done ) {
137
+ it ( 'should not run command on startup if runOnChangeOnly is true' ,
138
+ function ( done ) {
116
139
fs . writeFileSync ( tmp , 'console.log("testing 1 2 3")' ) ;
117
140
118
141
nodemon ( {
0 commit comments