@@ -12,66 +12,65 @@ opn.mockImplementation(() => {
12
12
catch : jest . fn ( ) ,
13
13
} ;
14
14
} ) ;
15
+ jest . mock ( 'sockjs/lib/transport' ) ;
16
+ // eslint-disable-next-line import/newline-after-import
17
+ const sockjs = require ( 'sockjs/lib/transport' ) ;
15
18
const Server = require ( '../lib/Server' ) ;
16
19
const config = require ( './fixtures/simple-config/webpack.config' ) ;
17
20
const testServer = require ( './helpers/test-server' ) ;
18
21
19
22
describe ( 'Server' , ( ) => {
23
+ describe ( 'sockjs' , ( ) => {
24
+ it ( 'add decorateConnection' , ( ) => {
25
+ expect ( typeof sockjs . Session . prototype . decorateConnection ) . toEqual (
26
+ 'function'
27
+ ) ;
28
+ } ) ;
29
+ } ) ;
30
+
20
31
describe ( 'addEntries' , ( ) => {
21
- it ( 'add hot option' , ( ) => {
22
- return new Promise ( ( res ) => {
23
- // eslint-disable-next-line
24
- const Server = require ( '../lib/Server' ) ;
25
- const compiler = webpack ( config ) ;
26
- const server = new Server ( compiler , {
27
- hot : true ,
28
- } ) ;
32
+ it ( 'add hot option' , ( done ) => {
33
+ const compiler = webpack ( config ) ;
34
+ const server = new Server ( compiler , {
35
+ hot : true ,
36
+ } ) ;
29
37
30
- expect (
31
- server . middleware . context . compiler . options . entry . map ( ( p ) => {
32
- return relative ( '.' , p ) . split ( sep ) ;
33
- } )
34
- ) . toMatchSnapshot ( ) ;
35
- expect (
36
- server . middleware . context . compiler . options . plugins
37
- ) . toMatchSnapshot ( ) ;
38
-
39
- compiler . hooks . done . tap ( 'webpack-dev-server' , ( ) => {
40
- server . close ( ( ) => {
41
- res ( ) ;
42
- } ) ;
43
- } ) ;
38
+ expect (
39
+ server . middleware . context . compiler . options . entry . map ( ( p ) => {
40
+ return relative ( '.' , p ) . split ( sep ) ;
41
+ } )
42
+ ) . toMatchSnapshot ( ) ;
43
+ expect (
44
+ server . middleware . context . compiler . options . plugins
45
+ ) . toMatchSnapshot ( ) ;
44
46
45
- compiler . run ( ( ) => { } ) ;
47
+ compiler . hooks . done . tap ( 'webpack-dev-server' , ( ) => {
48
+ server . close ( done ) ;
46
49
} ) ;
50
+
51
+ compiler . run ( ( ) => { } ) ;
47
52
} ) ;
48
53
49
- it ( 'add hotOnly option' , ( ) => {
50
- return new Promise ( ( res ) => {
51
- // eslint-disable-next-line
52
- const Server = require ( '../lib/Server' ) ;
53
- const compiler = webpack ( config ) ;
54
- const server = new Server ( compiler , {
55
- hotOnly : true ,
56
- } ) ;
54
+ it ( 'add hotOnly option' , ( done ) => {
55
+ const compiler = webpack ( config ) ;
56
+ const server = new Server ( compiler , {
57
+ hotOnly : true ,
58
+ } ) ;
57
59
58
- expect (
59
- server . middleware . context . compiler . options . entry . map ( ( p ) => {
60
- return relative ( '.' , p ) . split ( sep ) ;
61
- } )
62
- ) . toMatchSnapshot ( ) ;
63
- expect (
64
- server . middleware . context . compiler . options . plugins
65
- ) . toMatchSnapshot ( ) ;
66
-
67
- compiler . hooks . done . tap ( 'webpack-dev-server' , ( ) => {
68
- server . close ( ( ) => {
69
- res ( ) ;
70
- } ) ;
71
- } ) ;
60
+ expect (
61
+ server . middleware . context . compiler . options . entry . map ( ( p ) => {
62
+ return relative ( '.' , p ) . split ( sep ) ;
63
+ } )
64
+ ) . toMatchSnapshot ( ) ;
65
+ expect (
66
+ server . middleware . context . compiler . options . plugins
67
+ ) . toMatchSnapshot ( ) ;
72
68
73
- compiler . run ( ( ) => { } ) ;
69
+ compiler . hooks . done . tap ( 'webpack-dev-server' , ( ) => {
70
+ server . close ( done ) ;
74
71
} ) ;
72
+
73
+ compiler . run ( ( ) => { } ) ;
75
74
} ) ;
76
75
} ) ;
77
76
@@ -85,10 +84,7 @@ describe('Server', () => {
85
84
jest . unmock ( 'express' ) ;
86
85
} ) ;
87
86
88
- it ( "should success even if mine.types doesn't exist" , ( ) => {
89
- // eslint-disable-next-line
90
- const Server = require ( '../lib/Server' ) ;
91
-
87
+ it ( "should success even if mine.types doesn't exist" , ( done ) => {
92
88
jest . mock ( 'express' , ( ) => {
93
89
const data = jest . requireActual ( 'express' ) ;
94
90
const { static : st } = data ;
@@ -105,22 +101,18 @@ describe('Server', () => {
105
101
} ) ;
106
102
} ) ;
107
103
108
- return new Promise ( ( res ) => {
109
- const compiler = webpack ( config ) ;
110
- const server = new Server ( compiler ) ;
111
-
112
- compiler . hooks . done . tap ( 'webpack-dev-server' , ( s ) => {
113
- const output = server . getStats ( s ) ;
114
- expect ( output . errors . length ) . toEqual ( 0 ) ;
104
+ const compiler = webpack ( config ) ;
105
+ const server = new Server ( compiler ) ;
115
106
116
- server . close ( ( ) => {
117
- res ( ) ;
118
- } ) ;
119
- } ) ;
107
+ compiler . hooks . done . tap ( 'webpack-dev-server' , ( s ) => {
108
+ const output = server . getStats ( s ) ;
109
+ expect ( output . errors . length ) . toEqual ( 0 ) ;
120
110
121
- compiler . run ( ( ) => { } ) ;
122
- server . listen ( 8080 , 'localhost' ) ;
111
+ server . close ( done ) ;
123
112
} ) ;
113
+
114
+ compiler . run ( ( ) => { } ) ;
115
+ server . listen ( 8080 , 'localhost' ) ;
124
116
} ) ;
125
117
} ) ;
126
118
@@ -137,86 +129,60 @@ describe('Server', () => {
137
129
} ,
138
130
] ;
139
131
140
- return new Promise ( ( resolve , reject ) => {
141
- ( function iterate ( stats , i ) {
142
- if ( i === allStats . length ) {
143
- return resolve ( ) ;
144
- }
145
-
146
- // Iterate to cover each case.
147
- Promise . resolve ( )
148
- . then (
149
- ( ) =>
150
- new Promise ( ( res ) => {
151
- const compiler = webpack ( config ) ;
152
- const server = new Server ( compiler , { stats } ) ;
153
-
154
- compiler . hooks . done . tap ( 'webpack-dev-server' , ( s ) => {
155
- expect ( Object . keys ( server . getStats ( s ) ) ) . toMatchSnapshot ( ) ;
156
-
157
- server . close ( ( ) => {
158
- res ( ) ;
159
- } ) ;
160
- } ) ;
161
-
162
- compiler . run ( ( ) => { } ) ;
163
- server . listen ( 8080 , 'localhost' ) ;
164
- } )
165
- )
166
- . then ( ( ) => {
167
- i += 1 ;
168
- iterate ( allStats [ i ] , i ) ;
169
- } )
170
- . catch ( ( e ) => {
171
- reject ( e ) ;
132
+ return allStats . reduce ( ( p , stats ) => {
133
+ return p . then ( ( ) => {
134
+ return new Promise ( ( resolve ) => {
135
+ const compiler = webpack ( config ) ;
136
+ const server = new Server ( compiler , { stats } ) ;
137
+
138
+ compiler . hooks . done . tap ( 'webpack-dev-server' , ( s ) => {
139
+ expect ( Object . keys ( server . getStats ( s ) ) ) . toMatchSnapshot ( ) ;
140
+
141
+ server . close ( resolve ) ;
172
142
} ) ;
173
- } ) ( allStats [ 0 ] , 0 ) ;
174
- } ) ;
175
- } ) ;
176
143
177
- it ( 'should respect warningsFilter' , ( ) => {
178
- return new Promise ( ( res ) => {
179
- const compiler = webpack ( config ) ;
180
- const server = new Server ( compiler , {
181
- stats : { warningsFilter : 'test' } ,
144
+ compiler . run ( ( ) => { } ) ;
145
+ server . listen ( 8080 , 'localhost' ) ;
146
+ } ) ;
182
147
} ) ;
148
+ } , Promise . resolve ( ) ) ;
149
+ } ) ;
183
150
184
- compiler . hooks . done . tap ( 'webpack-dev-server' , ( s ) => {
185
- s . compilation . warnings = [ 'test' , 'another warning' ] ;
151
+ it ( 'should respect warningsFilter' , ( done ) => {
152
+ const compiler = webpack ( config ) ;
153
+ const server = new Server ( compiler , {
154
+ stats : { warningsFilter : 'test' } ,
155
+ } ) ;
186
156
187
- const output = server . getStats ( s ) ;
157
+ compiler . hooks . done . tap ( 'webpack-dev-server' , ( s ) => {
158
+ s . compilation . warnings = [ 'test' , 'another warning' ] ;
188
159
189
- expect ( output . warnings . length ) . toBe ( 1 ) ;
190
- expect ( output . warnings [ 0 ] ) . toBe ( 'another warning' ) ;
160
+ const output = server . getStats ( s ) ;
191
161
192
- server . close ( ( ) => {
193
- res ( ) ;
194
- } ) ;
195
- } ) ;
162
+ expect ( output . warnings . length ) . toBe ( 1 ) ;
163
+ expect ( output . warnings [ 0 ] ) . toBe ( 'another warning' ) ;
196
164
197
- compiler . run ( ( ) => { } ) ;
198
- server . listen ( 8080 , 'localhost' ) ;
165
+ server . close ( done ) ;
199
166
} ) ;
200
- } ) ;
201
167
202
- it ( 'should open' , ( ) => {
203
- return new Promise ( ( res ) => {
204
- const compiler = webpack ( config ) ;
205
- const server = new Server ( compiler , {
206
- open : true ,
207
- } ) ;
168
+ compiler . run ( ( ) => { } ) ;
169
+ server . listen ( 8080 , 'localhost' ) ;
170
+ } ) ;
208
171
209
- compiler . hooks . done . tap ( 'webpack-dev-server' , ( ) => {
210
- expect ( opn . mock . calls [ 0 ] ) . toEqual ( [ 'http://localhost:8080/' , { } ] ) ;
211
- expect ( opn . mock . invocationCallOrder [ 0 ] ) . toEqual ( 1 ) ;
212
- server . close ( ( ) => {
213
- res ( ) ;
214
- } ) ;
215
- } ) ;
172
+ it ( 'should open' , ( done ) => {
173
+ const compiler = webpack ( config ) ;
174
+ const server = new Server ( compiler , {
175
+ open : true ,
176
+ } ) ;
216
177
217
- compiler . run ( ( ) => { } ) ;
218
- server . listen ( 8080 , 'localhost' ) ;
178
+ compiler . hooks . done . tap ( 'webpack-dev-server' , ( ) => {
179
+ expect ( opn . mock . calls [ 0 ] ) . toEqual ( [ 'http://localhost:8080/' , { } ] ) ;
180
+ expect ( opn . mock . invocationCallOrder [ 0 ] ) . toEqual ( 1 ) ;
181
+ server . close ( done ) ;
219
182
} ) ;
183
+
184
+ compiler . run ( ( ) => { } ) ;
185
+ server . listen ( 8080 , 'localhost' ) ;
220
186
} ) ;
221
187
} ) ;
222
188
0 commit comments