@@ -47,25 +47,36 @@ export default feature =>
4747 let window ;
4848
4949 if ( process . env . E2E_FILE ) {
50- window = ( await JSDOM . fromFile ( file , {
51- pretendToBeVisual : true ,
52- resources : fileResourceLoader ,
53- runScripts : 'dangerously' ,
54- url,
55- } ) ) . window ;
50+ window = (
51+ await JSDOM . fromFile ( file , {
52+ pretendToBeVisual : true ,
53+ resources : fileResourceLoader ,
54+ runScripts : 'dangerously' ,
55+ url,
56+ } )
57+ ) . window ;
5658 } else {
57- window = ( await JSDOM . fromURL ( url , {
58- pretendToBeVisual : true ,
59- resources : 'usable' ,
60- runScripts : 'dangerously' ,
61- } ) ) . window ;
59+ window = (
60+ await JSDOM . fromURL ( url , {
61+ pretendToBeVisual : true ,
62+ resources : 'usable' ,
63+ runScripts : 'dangerously' ,
64+ } )
65+ ) . window ;
6266 }
6367
68+ const cleanup = ( ) => {
69+ if ( window ) {
70+ window . close ( ) ;
71+ window = null ;
72+ }
73+ } ;
74+
6475 const { document } = window ;
6576
6677 const cancelToken = setTimeout ( ( ) => {
6778 // Cleanup jsdom instance since we don't need it anymore
68- window . close ( ) ;
79+ cleanup ( ) ;
6980
7081 reject ( `Timed out loading feature: ${ feature } ` ) ;
7182 } , 10000 ) ;
@@ -81,7 +92,7 @@ export default feature =>
8192 clearTimeout ( cancelToken ) ;
8293
8394 // Cleanup jsdom instance since we don't need it anymore
84- window . close ( ) ;
95+ cleanup ( ) ;
8596
8697 reject ( `Error loading feature: ${ feature } ` ) ;
8798 } ,
0 commit comments