1
+ import React , { useEffect , useRef } from 'react' ;
2
+ import TestRenderer from 'react-test-renderer' ;
3
+ import { render } from '@testing-library/react' ;
4
+ import MarkdownPreview , { MarkdownPreviewRef } from '../src' ;
5
+
6
+ it ( 'Should output a TestRenderer' , async ( ) => {
7
+ const component = TestRenderer . create ( < MarkdownPreview source = "## Hello World!" /> ) ;
8
+ let tree = component . toJSON ( ) ;
9
+ if ( tree && ! Array . isArray ( tree ) ) {
10
+ expect ( tree . type ) . toEqual ( 'div' ) ;
11
+ expect ( tree . props . disabled ) . toBeFalsy ( ) ;
12
+ expect ( tree . props . onScroll ) . toBeUndefined ( ) ;
13
+ expect ( tree . props . style ) . toBeUndefined ( ) ;
14
+ expect ( tree . props . onMouseOver ) . toBeUndefined ( ) ;
15
+ expect ( tree . props . className ) . toEqual ( 'wmde-markdown wmde-markdown-color ' ) ;
16
+ }
17
+ } ) ;
18
+
19
+ it ( 'Test case prefixCls props' , async ( ) => {
20
+ const component = TestRenderer . create ( < MarkdownPreview prefixCls = "" source = "" /> ) ;
21
+ let tree = component . toJSON ( ) ;
22
+ if ( tree && ! Array . isArray ( tree ) ) {
23
+ expect ( tree . type ) . toEqual ( 'div' ) ;
24
+ expect ( tree . props . disabled ) . toBeFalsy ( ) ;
25
+ expect ( tree . props . onScroll ) . toBeUndefined ( ) ;
26
+ expect ( tree . props . style ) . toBeUndefined ( ) ;
27
+ expect ( tree . props . onMouseOver ) . toBeUndefined ( ) ;
28
+ expect ( tree . props . className ) . toEqual ( ' ' ) ;
29
+ }
30
+ } ) ;
31
+
32
+ it ( 'MarkdownPreview anchor' , async ( ) => {
33
+ const source = `### MarkdownPreview` ;
34
+ render ( < MarkdownPreview source = { source } /> ) ;
35
+ const octicon = document . querySelector ( '.octicon-link' ) ;
36
+ expect ( Object . keys ( octicon as any ) . length ) . toEqual ( 2 ) ;
37
+ Object . keys ( octicon as any ) . forEach ( ( elm ) => {
38
+ const fiberNode = ( octicon as any ) [ elm ] ;
39
+ expect ( typeof fiberNode ) . toEqual ( 'object' ) ;
40
+ if ( fiberNode [ 'className' ] ) {
41
+ expect ( fiberNode . className ) . toEqual ( 'octicon octicon-link' ) ;
42
+ expect ( fiberNode . width ) . toEqual ( '16' ) ;
43
+ expect ( fiberNode . height ) . toEqual ( '16' ) ;
44
+ expect ( fiberNode [ 'aria-hidden' ] ) . toEqual ( 'true' ) ;
45
+ }
46
+ } ) ;
47
+ } ) ;
48
+
49
+ it ( 'MarkdownPreview Ref' , async ( ) => {
50
+ const source = `### MarkdownPreview` ;
51
+ function Demo ( ) {
52
+ const ref = useRef < MarkdownPreviewRef > ( null ) ;
53
+ useEffect ( ( ) => {
54
+ if ( ref . current ) {
55
+ expect ( Object . keys ( ref . current ) ) . toEqual ( [ 'source' , 'mdp' ] ) ;
56
+ }
57
+ } ) ;
58
+ return (
59
+ < MarkdownPreview ref = { ref } source = { source } />
60
+ ) ;
61
+ }
62
+ render ( < Demo /> ) ;
63
+ } ) ;
0 commit comments