1
1
import { expect } from 'chai' ;
2
2
import 'mocha' ;
3
- import { JSDOM } from 'jsdom' ;
3
+ import { JSDOM , VirtualConsole } from 'jsdom' ;
4
4
import { ContextCollectionProviderContext } from '../src/interfaces' ;
5
5
import { Configuration , Reporter } from '../src/reporting' ;
6
6
import { ErrorReportDTO , ErrorDTO } from '../src/contracts' ;
7
7
import { catchDomErrors } from '../src/dom' ;
8
8
declare var global : any ;
9
9
10
+ const html = `<!DOCTYPE html>
11
+ <html>
12
+ <head>
13
+ <title>hello</title>
14
+ <script>
15
+ function crash()
16
+ {
17
+ console.log('here');
18
+ //document.getElementById('abc').innerHTML = 'hello';
19
+ throw new Error("Testar");
20
+ }
21
+ </script>
22
+ </head>
23
+ <body>
24
+ </body>
25
+ </html>` ;
26
+
27
+ const virtualConsole = new VirtualConsole ( ) ;
28
+ virtualConsole . sendTo ( console ) ;
29
+ virtualConsole . on ( "error" , ( ) => { console . log ( 'ERRRRRROR' ) ; } ) ;
30
+ virtualConsole . on ( "jsdomError" , ( e ) => {
31
+ console . log ( e ) ;
32
+ } )
33
+ //virtualConsole.on("log", () => { });
34
+
10
35
const config = new Configuration ( 'a' , 'b' ) ;
11
- const dom = new JSDOM ( '<!DOCTYPE html><html><head></head><body></body></html>' ) ;
36
+ const dom = new JSDOM ( html , { runScripts : "dangerously" , virtualConsole} ) ;
37
+
38
+ dom . window . addEventListener ( 'error' , function ( ) { console . log ( 'ERROR!!' ) } ) ;
12
39
global . window = dom . window ;
13
40
global . document = dom . window . document ;
14
41
@@ -23,7 +50,7 @@ describe('DOM error event', () => {
23
50
it ( 'includes the document collection' , ( ) => {
24
51
catchDomErrors ( config ) ;
25
52
26
- dom . window . document . body . innerHTML = '<script>a = 10 / 0;</script>' ;
53
+ global . window . eval ( 'crash()' ) ;
27
54
28
55
expect ( actualContext ) . to . be ( 'object' ) ;
29
56
} ) ;
0 commit comments