1
+ import renderer from 'react-test-renderer' ;
2
+ import { cleanup , fireEvent , render } from '@testing-library/react' ;
3
+ import JsonView from './' ;
4
+
5
+
6
+ const avatar = 'https://i.imgur.com/MK3eW3As.jpg' ;
7
+ const longArray = new Array ( 1000 ) . fill ( 1 ) ;
8
+ const example = {
9
+ avatar,
10
+ string : 'Lorem ipsum dolor sit amet' ,
11
+ integer : 42 ,
12
+ float : 114.514 ,
13
+ // @ts -ignore
14
+ bigint : 10086n ,
15
+ null : null ,
16
+ undefined,
17
+ timer : 0 ,
18
+ date : new Date ( 'Tue Sep 13 2022 14:07:44 GMT-0500 (Central Daylight Time)' ) ,
19
+ array : [ 19 , 100.86 , 'test' , NaN , Infinity ] ,
20
+ nestedArray : [
21
+ [ 1 , 2 ] ,
22
+ [ 3 , 4 ] ,
23
+ ] ,
24
+ object : {
25
+ 'first-child' : true ,
26
+ 'second-child' : false ,
27
+ 'last-child' : null ,
28
+ } ,
29
+ longArray,
30
+ string_number : '1234' ,
31
+ } ;
32
+
33
+ it ( 'renders <JsonView /> test case' , ( ) => {
34
+ const component = renderer . create (
35
+ < JsonView value = { example } /> ,
36
+ ) ;
37
+ let tree = component . toJSON ( ) ;
38
+ expect ( tree ) . toHaveProperty ( 'type' ) ;
39
+ expect ( tree ) . toHaveProperty ( 'props' ) ;
40
+ expect ( tree ) . toHaveProperty ( 'children' ) ;
41
+ expect ( tree ) . toHaveProperty ( 'type' , 'div' ) ;
42
+ expect ( tree ) . toHaveProperty ( 'props.className' , 'w-json-view-container w-rjv w-rjv-inner' ) ;
43
+ expect ( tree ) . toHaveProperty ( 'props.style.backgroundColor' , 'var(--w-rjv-background-color, #00000000)' ) ;
44
+ expect ( tree ) . toHaveProperty ( 'props.style' , {
45
+ lineHeight : 1.4 ,
46
+ fontFamily : 'monospace' ,
47
+ color : 'var(--w-rjv-color, #002b36)' ,
48
+ backgroundColor : 'var(--w-rjv-background-color, #00000000)'
49
+ } ) ;
50
+ expect ( tree ) . toHaveProperty ( 'props.onMouseEnter' ) ;
51
+ expect ( tree ) . toHaveProperty ( 'props.onMouseLeave' ) ;
52
+ } ) ;
0 commit comments