@@ -47,25 +47,36 @@ export default feature =>
47
47
let window ;
48
48
49
49
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 ;
56
58
} 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 ;
62
66
}
63
67
68
+ const cleanup = ( ) => {
69
+ if ( window ) {
70
+ window . close ( ) ;
71
+ window = null ;
72
+ }
73
+ } ;
74
+
64
75
const { document } = window ;
65
76
66
77
const cancelToken = setTimeout ( ( ) => {
67
78
// Cleanup jsdom instance since we don't need it anymore
68
- window . close ( ) ;
79
+ cleanup ( ) ;
69
80
70
81
reject ( `Timed out loading feature: ${ feature } ` ) ;
71
82
} , 10000 ) ;
@@ -81,7 +92,7 @@ export default feature =>
81
92
clearTimeout ( cancelToken ) ;
82
93
83
94
// Cleanup jsdom instance since we don't need it anymore
84
- window . close ( ) ;
95
+ cleanup ( ) ;
85
96
86
97
reject ( `Error loading feature: ${ feature } ` ) ;
87
98
} ,
0 commit comments