@@ -212,111 +212,91 @@ test.group('DevServer', () => {
212
212
] )
213
213
} ) . timeout ( 8 * 1000 )
214
214
215
- // test('should restart server if receive hot-hook message', async ({ assert, fs }) => {
216
- // await fs.createJson('tsconfig.json', { include: ['**/*'], exclude: [] })
217
- // await fs.create(
218
- // 'bin/server.js',
219
- // `process.send({ type: 'hot-hook:full-reload', path: '/foo' });`
220
- // )
221
- // await fs.create('.env', 'PORT=3334')
222
-
223
- // const { logger } = cliui({ mode: 'raw' })
224
- // const devServer = new DevServer(fs.baseUrl, {
225
- // hmr: true,
226
- // nodeArgs: [],
227
- // scriptArgs: [],
228
- // }).setLogger(logger)
229
-
230
- // await devServer.start()
231
- // await sleep(1000)
232
- // await devServer.close()
233
-
234
- // const logMessages = logger.getLogs().map(({ message }) => message)
235
- // assert.isAtLeast(logMessages.filter((message) => message.includes('full-reload')).length, 1)
236
- // })
237
-
238
- // test('trigger onDevServerStarted and onSourceFileChanged when hot-hook message is received', async ({
239
- // assert,
240
- // fs,
241
- // }) => {
242
- // let onDevServerStartedCalled = false
243
- // let onSourceFileChangedCalled = false
244
-
245
- // await fs.createJson('tsconfig.json', { include: ['**/*'], exclude: [] })
246
- // await fs.create(
247
- // 'bin/server.js',
248
- // `process.send({ type: 'hot-hook:full-reload', path: '/foo' });`
249
- // )
250
- // await fs.create('.env', 'PORT=3334')
251
-
252
- // const { logger } = cliui({ mode: 'raw' })
253
- // const devServer = new DevServer(fs.baseUrl, {
254
- // hmr: true,
255
- // nodeArgs: [],
256
- // scriptArgs: [],
257
- // hooks: {
258
- // onDevServerStarted: [
259
- // async () => ({
260
- // default: () => {
261
- // onDevServerStartedCalled = true
262
- // },
263
- // }),
264
- // ],
265
- // onSourceFileChanged: [
266
- // async () => ({
267
- // default: () => {
268
- // onSourceFileChangedCalled = true
269
- // },
270
- // }),
271
- // ],
272
- // },
273
- // }).setLogger(logger)
274
-
275
- // await devServer.start()
276
- // await sleep(1000)
277
- // await devServer.close()
278
-
279
- // assert.isTrue(onDevServerStartedCalled)
280
- // assert.isTrue(onSourceFileChangedCalled)
281
- // })
282
-
283
- // test('should correctly display a relative path when a hot-hook message is received', async ({
284
- // assert,
285
- // fs,
286
- // }) => {
287
- // await fs.createJson('tsconfig.json', { include: ['**/*'], exclude: [] })
288
- // await fs.createJson('package.json', { type: 'module', hotHook: { boundaries: ['./app/**'] } })
289
- // await fs.create('app/controllers/app_controller.ts', 'console.log("foo")')
290
- // await fs.create(
291
- // 'bin/server.js',
292
- // `
293
- // import { resolve } from 'path';
294
- // import '../app/controllers/app_controller.js';
295
- // `
296
- // )
297
- // await fs.create('.env', 'PORT=3334')
298
-
299
- // const { logger } = cliui({ mode: 'raw' })
300
- // const devServer = new DevServer(fs.baseUrl, {
301
- // hmr: true,
302
- // nodeArgs: [],
303
- // scriptArgs: [],
304
- // }).setLogger(logger)
305
-
306
- // await devServer.start()
307
- // await sleep(2000)
308
- // await fs.create('app/controllers/app_controller.ts', 'console.log("bar")')
309
- // await sleep(2000)
310
- // await devServer.close()
311
-
312
- // const logMessages = logger.getLogs().map(({ message }) => message)
313
-
314
- // const relativePath = relative(
315
- // fs.basePath,
316
- // resolve(fs.basePath, 'app/controllers/app_controller.ts')
317
- // )
318
-
319
- // const expectedMessage = `green(full-reload) ${relativePath}`
320
- // assert.isAtLeast(logMessages.filter((message) => message.includes(expectedMessage)).length, 1)
321
- // }).timeout(10_000)
215
+ test ( 'restart server if hot-hook:full-reload message is received' , async ( { assert, fs } ) => {
216
+ await fs . createJson ( 'tsconfig.json' , { include : [ '**/*' ] , exclude : [ ] } )
217
+ await fs . create (
218
+ 'bin/server.ts' ,
219
+ `process.send({ type: 'hot-hook:full-reload', path: 'start/routes.ts' });`
220
+ )
221
+ await fs . create ( 'start/routes.ts' , `` )
222
+ await fs . create ( '.env' , 'PORT=3334' )
223
+
224
+ const devServer = new DevServer ( fs . baseUrl , {
225
+ hmr : true ,
226
+ nodeArgs : [ ] ,
227
+ scriptArgs : [ ] ,
228
+ } )
229
+
230
+ devServer . ui . switchMode ( 'raw' )
231
+ devServer . start ( ts )
232
+ await sleep ( 1000 )
233
+
234
+ await devServer . close ( )
235
+
236
+ const logMessages = devServer . ui . logger . getLogs ( ) . map ( ( { message } ) => message )
237
+ assert . isAtLeast (
238
+ logMessages . filter ( ( message ) => message . includes ( 'green(update) start/routes.ts' ) ) . length ,
239
+ 1
240
+ )
241
+ } ) . disableTimeout ( )
242
+
243
+ test ( 'do not restart server when hot-hook:invalidated message is received' , async ( {
244
+ assert,
245
+ fs,
246
+ } ) => {
247
+ await fs . createJson ( 'tsconfig.json' , { include : [ '**/*' ] , exclude : [ ] } )
248
+ await fs . create (
249
+ 'bin/server.ts' ,
250
+ `process.send({ type: 'hot-hook:invalidated', path: 'start/routes.ts' });`
251
+ )
252
+ await fs . create ( 'start/routes.ts' , `` )
253
+ await fs . create ( '.env' , 'PORT=3334' )
254
+
255
+ const devServer = new DevServer ( fs . baseUrl , {
256
+ hmr : true ,
257
+ nodeArgs : [ ] ,
258
+ scriptArgs : [ ] ,
259
+ } )
260
+
261
+ devServer . ui . switchMode ( 'raw' )
262
+ devServer . start ( ts )
263
+ await sleep ( 1000 )
264
+
265
+ await devServer . close ( )
266
+
267
+ const logMessages = devServer . ui . logger . getLogs ( ) . map ( ( { message } ) => message )
268
+ assert . isAtLeast (
269
+ logMessages . filter ( ( message ) => message . includes ( 'green(invalidated) start/routes.ts' ) )
270
+ . length ,
271
+ 1
272
+ )
273
+ } ) . disableTimeout ( )
274
+
275
+ test ( 'handle hot-hook:file-changed event' , async ( { assert, fs } ) => {
276
+ await fs . createJson ( 'tsconfig.json' , { include : [ '**/*' ] , exclude : [ ] } )
277
+ await fs . create (
278
+ 'bin/server.ts' ,
279
+ `process.send({ type: 'hot-hook:file-changed', action: 'change', path: 'start/routes.ts' });`
280
+ )
281
+ await fs . create ( 'start/routes.ts' , `` )
282
+ await fs . create ( '.env' , 'PORT=3334' )
283
+
284
+ const devServer = new DevServer ( fs . baseUrl , {
285
+ hmr : true ,
286
+ nodeArgs : [ ] ,
287
+ scriptArgs : [ ] ,
288
+ } )
289
+
290
+ devServer . ui . switchMode ( 'raw' )
291
+ devServer . start ( ts )
292
+ await sleep ( 1000 )
293
+
294
+ await devServer . close ( )
295
+
296
+ const logMessages = devServer . ui . logger . getLogs ( ) . map ( ( { message } ) => message )
297
+ assert . isAtLeast (
298
+ logMessages . filter ( ( message ) => message . includes ( 'green(update) start/routes.ts' ) ) . length ,
299
+ 1
300
+ )
301
+ } ) . disableTimeout ( )
322
302
} )
0 commit comments