@@ -5,6 +5,7 @@ import { createServer, resolveConfig } from '..'
55import type { ViteDevServer } from '..'
66import { promiseWithResolvers } from '../../shared/utils'
77import { createLogger } from '../logger'
8+ import { _createServer } from '../server'
89import { DevEnvironment } from '../server/environment'
910import { normalizePath } from '../utils'
1011
@@ -32,6 +33,37 @@ describe('the dev server', () => {
3233 await server ?. close ( )
3334 } )
3435
36+ test ( 'releases previous environments after initialization' , async ( ) => {
37+ const previousServer = await createServer ( {
38+ configFile : false ,
39+ root : import . meta. dirname ,
40+ optimizeDeps : { noDiscovery : true } ,
41+ server : { middlewareMode : true , ws : false } ,
42+ } )
43+ const options = {
44+ listen : false ,
45+ previousEnvironments : previousServer . environments ,
46+ }
47+
48+ try {
49+ const config = await resolveConfig (
50+ {
51+ configFile : false ,
52+ root : import . meta. dirname ,
53+ optimizeDeps : { noDiscovery : true } ,
54+ server : { middlewareMode : true , ws : false } ,
55+ } ,
56+ 'serve' ,
57+ )
58+ const nextServer = await _createServer ( config , options )
59+
60+ expect ( options . previousEnvironments ) . toBeUndefined ( )
61+ await nextServer . close ( )
62+ } finally {
63+ await previousServer . close ( )
64+ }
65+ } )
66+
3567 test ( 'resolves each environment input as a safe module' , async ( ) => {
3668 const root = path . join ( import . meta. dirname , 'fixtures' , 'input-option' )
3769 const clientEntry = normalizePath ( path . join ( root , 'client-entry.js' ) )
0 commit comments