@@ -43,37 +43,7 @@ vi.mock('phaser', () => {
4343 this . pluginManager = pluginManager
4444 this . game = pluginManager . game
4545 this . scene = scene
46- this . systems = {
47- cache : {
48- bitmapFont : {
49- events : new EventEmitter ( ) ,
50- add : vi . fn ( ) ,
51- exists : vi . fn ( ) . mockReturnValue ( true )
52- }
53- } ,
54- events : new EventEmitter ( ) ,
55- input : {
56- keyboard : Object . assign ( new EventEmitter ( ) , {
57- addKey : vi . fn ( ( ) => new EventEmitter ( ) ) ,
58- removeKey : vi . fn ( ) . mockReturnThis ( )
59- } )
60- } ,
61- make : {
62- bitmapText : vi . fn ( ( ) => ( {
63- destroy : vi . fn ( ) ,
64- renderCanvas : vi . fn ( ) ,
65- renderWebGL : vi . fn ( ) ,
66- setText : vi . fn ( ) . mockReturnThis ( )
67- } ) )
68- } ,
69- renderer : { type : Phaser . WEBGL } ,
70- scale : { width : 1024 , height : 768 } ,
71- settings : { key : 'testScene' } ,
72- textures : Object . assign ( new EventEmitter ( ) , {
73- addBase64 : vi . fn ( ) . mockReturnThis ( ) ,
74- exists : vi . fn ( ) . mockReturnValue ( true )
75- } )
76- }
46+ this . systems = scene . sys
7747 }
7848 }
7949 } ,
@@ -145,16 +115,35 @@ describe('new DisplayListWatcher(scene, pluginManager)', () => {
145115 game . plugins = pluginManager
146116 scene = {
147117 sys : {
118+ cache : {
119+ bitmapFont : {
120+ events : new EventEmitter ( ) ,
121+ add : vi . fn ( ) ,
122+ exists : vi . fn ( ) . mockReturnValue ( true )
123+ }
124+ } ,
148125 events : new EventEmitter ( ) ,
149- input : { keyboard : { addKey : ( ) => new EventEmitter ( ) } } ,
126+ input : {
127+ keyboard : Object . assign ( new EventEmitter ( ) , {
128+ addKey : vi . fn ( ( ) => new EventEmitter ( ) ) ,
129+ removeKey : vi . fn ( ) . mockReturnThis ( )
130+ } )
131+ } ,
150132 make : {
151- bitmapText : ( ) => {
152- return { setText : vi . fn ( ) . mockReturnThis ( ) , destroy : vi . fn ( ) }
153- }
133+ bitmapText : vi . fn ( ( ) => ( {
134+ destroy : vi . fn ( ) ,
135+ renderCanvas : vi . fn ( ) ,
136+ renderWebGL : vi . fn ( ) ,
137+ setText : vi . fn ( ) . mockReturnThis ( )
138+ } ) )
154139 } ,
155- renderer : { type : 2 } ,
140+ renderer : { type : Phaser . WEBGL } ,
156141 scale : { width : 1024 , height : 768 } ,
157- settings : { key : 'default' }
142+ settings : { key : 'testScene' , isBooted : false } ,
143+ textures : Object . assign ( new EventEmitter ( ) , {
144+ addBase64 : vi . fn ( ) . mockReturnThis ( ) ,
145+ exists : vi . fn ( ) . mockReturnValue ( true )
146+ } )
158147 }
159148 }
160149
@@ -289,6 +278,30 @@ describe('new DisplayListWatcher(scene, pluginManager)', () => {
289278 plugin . destroy ( )
290279 } )
291280
281+ test ( 'boot() calls start() if the scene has already booted' , ( ) => {
282+ const plugin = new DisplayListWatcher ( scene , pluginManager )
283+ const startSpy = vi . spyOn ( plugin , 'start' )
284+
285+ scene . sys . settings . key = 'bootedScene'
286+ scene . sys . settings . isBooted = true
287+
288+ plugin . boot ( )
289+
290+ expect ( startSpy ) . toHaveBeenCalledTimes ( 1 )
291+ } )
292+
293+ test ( 'boot() does not call start() if the scene has not booted' , ( ) => {
294+ const plugin = new DisplayListWatcher ( scene , pluginManager )
295+ const startSpy = vi . spyOn ( plugin , 'start' )
296+
297+ scene . sys . settings . key = 'unbootedScene'
298+ scene . sys . settings . isBooted = false
299+
300+ plugin . boot ( )
301+
302+ expect ( startSpy ) . not . toHaveBeenCalled ( )
303+ } )
304+
292305 test ( 'after boot(), scene START event causes plugin start()' , ( ) => {
293306 const plugin = new DisplayListWatcher ( scene , pluginManager )
294307 const startSpy = vi . spyOn ( plugin , 'start' )
0 commit comments