1
1
'use strict' ;
2
2
3
3
const path = require ( 'path' ) ;
4
+ const fs = require ( 'fs' ) ;
4
5
const request = require ( 'supertest' ) ;
5
6
const helper = require ( './helper' ) ;
6
7
const config = require ( './fixtures/contentbase-config/webpack.config' ) ;
@@ -17,27 +18,51 @@ const contentBaseOther = path.join(
17
18
describe ( 'ContentBase' , ( ) => {
18
19
let server ;
19
20
let req ;
20
- afterEach ( helper . close ) ;
21
21
22
22
describe ( 'to directory' , ( ) => {
23
+ const nestedFile = path . join ( contentBasePublic , 'assets/example.txt' ) ;
24
+
25
+ jest . setTimeout ( 30000 ) ;
26
+
23
27
beforeAll ( ( done ) => {
24
28
server = helper . start (
25
29
config ,
26
30
{
27
31
contentBase : contentBasePublic ,
32
+ watchContentBase : true ,
28
33
} ,
29
34
done
30
35
) ;
31
36
req = request ( server . app ) ;
32
37
} ) ;
33
38
39
+ afterAll ( ( done ) => {
40
+ helper . close ( ( ) => {
41
+ done ( ) ;
42
+ } ) ;
43
+ fs . truncateSync ( nestedFile ) ;
44
+ } ) ;
45
+
34
46
it ( 'Request to index' , ( done ) => {
35
47
req . get ( '/' ) . expect ( 200 , / H e y o / , done ) ;
36
48
} ) ;
37
49
38
50
it ( 'Request to other file' , ( done ) => {
39
51
req . get ( '/other.html' ) . expect ( 200 , / O t h e r h t m l / , done ) ;
40
52
} ) ;
53
+
54
+ it ( 'Watches folder recursively' , ( done ) => {
55
+ // chokidar emitted a change,
56
+ // meaning it watched the file correctly
57
+ server . contentBaseWatchers [ 0 ] . on ( 'change' , ( ) => {
58
+ done ( ) ;
59
+ } ) ;
60
+
61
+ // change a file manually
62
+ setTimeout ( ( ) => {
63
+ fs . writeFileSync ( nestedFile , 'Heyo' , 'utf8' ) ;
64
+ } , 1000 ) ;
65
+ } ) ;
41
66
} ) ;
42
67
43
68
describe ( 'to directories' , ( ) => {
@@ -52,6 +77,12 @@ describe('ContentBase', () => {
52
77
req = request ( server . app ) ;
53
78
} ) ;
54
79
80
+ afterAll ( ( done ) => {
81
+ helper . close ( ( ) => {
82
+ done ( ) ;
83
+ } ) ;
84
+ } ) ;
85
+
55
86
it ( 'Request to first directory' , ( done ) => {
56
87
req . get ( '/' ) . expect ( 200 , / H e y o / , done ) ;
57
88
} ) ;
@@ -73,6 +104,12 @@ describe('ContentBase', () => {
73
104
req = request ( server . app ) ;
74
105
} ) ;
75
106
107
+ afterAll ( ( done ) => {
108
+ helper . close ( ( ) => {
109
+ done ( ) ;
110
+ } ) ;
111
+ } ) ;
112
+
76
113
it ( 'Request to page' , ( done ) => {
77
114
req
78
115
. get ( '/other.html' )
@@ -93,6 +130,12 @@ describe('ContentBase', () => {
93
130
req = request ( server . app ) ;
94
131
} ) ;
95
132
133
+ afterAll ( ( done ) => {
134
+ helper . close ( ( ) => {
135
+ done ( ) ;
136
+ } ) ;
137
+ } ) ;
138
+
96
139
it ( 'Request to page' , ( done ) => {
97
140
req
98
141
. get ( '/foo.html' )
@@ -117,6 +160,12 @@ describe('ContentBase', () => {
117
160
req = request ( server . app ) ;
118
161
} ) ;
119
162
163
+ afterAll ( ( done ) => {
164
+ helper . close ( ( ) => {
165
+ done ( ) ;
166
+ } ) ;
167
+ } ) ;
168
+
120
169
it ( 'Request to page' , ( done ) => {
121
170
req . get ( '/other.html' ) . expect ( 200 , done ) ;
122
171
} ) ;
@@ -137,6 +186,12 @@ describe('ContentBase', () => {
137
186
req = request ( server . app ) ;
138
187
} ) ;
139
188
189
+ afterAll ( ( done ) => {
190
+ helper . close ( ( ) => {
191
+ done ( ) ;
192
+ } ) ;
193
+ } ) ;
194
+
140
195
it ( 'Request to page' , ( done ) => {
141
196
req . get ( '/other.html' ) . expect ( 404 , done ) ;
142
197
} ) ;
@@ -154,6 +209,12 @@ describe('ContentBase', () => {
154
209
req = request ( server . app ) ;
155
210
} ) ;
156
211
212
+ afterAll ( ( done ) => {
213
+ helper . close ( ( ) => {
214
+ done ( ) ;
215
+ } ) ;
216
+ } ) ;
217
+
157
218
it ( 'Request foo.wasm' , ( done ) => {
158
219
req . get ( '/foo.wasm' ) . expect ( 'Content-Type' , 'application/wasm' , done ) ;
159
220
} ) ;
0 commit comments