1+ import MarkType from '../src/nodes/mark-type'
2+ import Node from '../src/nodes/node'
3+ import NodeType from '../src/nodes/node-type'
4+ import { Next , RenderMark , RenderNode } from '../src/options'
5+ import { defaultNodeOption } from '../src/options/default-node-options'
6+
7+ const text = 'text'
8+ const next : Next = ( ) => text
9+ const node : Node = {
10+ type : NodeType . DOCUMENT ,
11+ attrs : { } ,
12+ children : [ ]
13+ }
14+
15+ const imgNode : Node = {
16+ type : NodeType . IMAGE ,
17+ attrs : { src : "https://image.url/Donald.jog.png" } ,
18+ children :[ ]
19+
20+ }
21+
22+ const linkNode : Node = {
23+ type : NodeType . LINK ,
24+ attrs : { href : "https://image.url/Donald.jog.png" } ,
25+ children :[ ]
26+
27+ }
28+
29+ const embedNode : Node = {
30+ type : NodeType . EMBED ,
31+ "attrs" : {
32+ src : "https://www.youtube.com/"
33+ } ,
34+ children : [ ]
35+ }
36+
37+ describe ( 'Default node render options' , ( ) => {
38+ it ( 'Should return document string' , done => {
39+ const renderString = ( defaultNodeOption [ NodeType . DOCUMENT ] as RenderNode ) ( node , next )
40+ expect ( renderString ) . toEqual ( '' )
41+ done ( )
42+ } )
43+ it ( 'Should return paragraph string' , done => {
44+ const renderString = ( defaultNodeOption [ NodeType . PARAGRAPH ] as RenderNode ) ( node , next )
45+ expect ( renderString ) . toEqual ( '<p>text</p>' )
46+ done ( )
47+ } )
48+ it ( 'Should return link string' , done => {
49+ let renderString = ( defaultNodeOption [ NodeType . LINK ] as RenderNode ) ( linkNode , next )
50+ expect ( renderString ) . toEqual ( `<a href="${ linkNode . attrs . href } ">text</a>` )
51+ renderString = ( defaultNodeOption [ NodeType . IMAGE ] as RenderNode ) ( imgNode , next )
52+ expect ( renderString ) . toEqual ( '<img src="https://image.url/Donald.jog.png" />text' )
53+ renderString = ( defaultNodeOption [ NodeType . EMBED ] as RenderNode ) ( embedNode , next )
54+ expect ( renderString ) . toEqual ( '<iframe src="https://www.youtube.com/">text</iframe>' )
55+ done ( )
56+ } )
57+ it ( 'Should return Heading string' , done => {
58+ let renderString = ( defaultNodeOption [ NodeType . HEADING_1 ] as RenderNode ) ( node , next )
59+ expect ( renderString ) . toEqual ( '<h1>text</h1>' )
60+
61+ renderString = ( defaultNodeOption [ NodeType . HEADING_2 ] as RenderNode ) ( node , next )
62+ expect ( renderString ) . toEqual ( '<h2>text</h2>' )
63+
64+ renderString = ( defaultNodeOption [ NodeType . HEADING_3 ] as RenderNode ) ( node , next )
65+ expect ( renderString ) . toEqual ( '<h3>text</h3>' )
66+
67+ renderString = ( defaultNodeOption [ NodeType . HEADING_4 ] as RenderNode ) ( node , next )
68+ expect ( renderString ) . toEqual ( '<h4>text</h4>' )
69+
70+ renderString = ( defaultNodeOption [ NodeType . HEADING_5 ] as RenderNode ) ( node , next )
71+ expect ( renderString ) . toEqual ( '<h5>text</h5>' )
72+
73+ renderString = ( defaultNodeOption [ NodeType . HEADING_6 ] as RenderNode ) ( node , next )
74+ expect ( renderString ) . toEqual ( '<h6>text</h6>' )
75+
76+ done ( )
77+ } )
78+ it ( 'Should return List string' , done => {
79+ let renderString = ( defaultNodeOption [ NodeType . ORDER_LIST ] as RenderNode ) ( node , next )
80+ expect ( renderString ) . toEqual ( '<ol>text</ol>' )
81+
82+ renderString = ( defaultNodeOption [ NodeType . UNORDER_LIST ] as RenderNode ) ( node , next )
83+ expect ( renderString ) . toEqual ( '<ul>text</ul>' )
84+
85+ renderString = ( defaultNodeOption [ NodeType . LIST_ITEM ] as RenderNode ) ( node , next )
86+ expect ( renderString ) . toEqual ( '<li>text</li>' )
87+
88+ done ( )
89+ } )
90+ it ( 'Should return HR string' , done => {
91+ const renderString = ( defaultNodeOption [ NodeType . HR ] as RenderNode ) ( node , next )
92+ expect ( renderString ) . toEqual ( '<hr>' )
93+ done ( )
94+ } )
95+ it ( 'Should return table string' , done => {
96+ let renderString = ( defaultNodeOption [ NodeType . TABLE ] as RenderNode ) ( node , next )
97+ expect ( renderString ) . toEqual ( '<table>text</table>' )
98+
99+ renderString = ( defaultNodeOption [ NodeType . TABLE_HEADER ] as RenderNode ) ( node , next )
100+ expect ( renderString ) . toEqual ( '<thead>text</thead>' )
101+
102+ renderString = ( defaultNodeOption [ NodeType . TABLE_BODY ] as RenderNode ) ( node , next )
103+ expect ( renderString ) . toEqual ( '<tbody>text</tbody>' )
104+
105+ renderString = ( defaultNodeOption [ NodeType . TABLE_FOOTER ] as RenderNode ) ( node , next )
106+ expect ( renderString ) . toEqual ( '<tfoot>text</tfoot>' )
107+
108+ renderString = ( defaultNodeOption [ NodeType . TABLE_ROW ] as RenderNode ) ( node , next )
109+ expect ( renderString ) . toEqual ( '<tr>text</tr>' )
110+
111+ renderString = ( defaultNodeOption [ NodeType . TABLE_HEAD ] as RenderNode ) ( node , next )
112+ expect ( renderString ) . toEqual ( '<th>text</th>' )
113+
114+ renderString = ( defaultNodeOption [ NodeType . TABLE_DATA ] as RenderNode ) ( node , next )
115+ expect ( renderString ) . toEqual ( '<td>text</td>' )
116+
117+ done ( )
118+ } )
119+ it ( 'Should return block quote string' , done => {
120+ const renderString = ( defaultNodeOption [ NodeType . BLOCK_QUOTE ] as RenderNode ) ( node , next )
121+ expect ( renderString ) . toEqual ( '<blockquote>text</blockquote>' )
122+ done ( )
123+ } )
124+ it ( 'Should return code string' , done => {
125+ const renderString = ( defaultNodeOption [ NodeType . CODE ] as RenderNode ) ( node , next )
126+ expect ( renderString ) . toEqual ( '<code>text</code>' )
127+ done ( )
128+ } )
129+ it ( 'Should return reference string' , done => {
130+ const renderString = ( defaultNodeOption . reference as RenderNode ) ( node , next )
131+ expect ( renderString ) . toEqual ( '' )
132+ done ( )
133+ } )
134+ } )
135+ describe ( 'Default node render options' , ( ) => {
136+
137+ it ( 'Should return bold string' , done => {
138+ const renderString = ( defaultNodeOption [ MarkType . BOLD ] as RenderMark ) ( text )
139+ expect ( renderString ) . toEqual ( '<strong>text</strong>' )
140+ done ( )
141+ } )
142+ it ( 'Should return italic string' , done => {
143+ const renderString = ( defaultNodeOption [ MarkType . ITALIC ] as RenderMark ) ( text )
144+ expect ( renderString ) . toEqual ( '<em>text</em>' )
145+ done ( )
146+ } )
147+ it ( 'Should return underline string' , done => {
148+ const renderString = ( defaultNodeOption [ MarkType . UNDERLINE ] as RenderMark ) ( text )
149+ expect ( renderString ) . toEqual ( '<u>text</u>' )
150+ done ( )
151+ } )
152+ it ( 'Should return strike through string' , done => {
153+ const renderString = ( defaultNodeOption [ MarkType . STRIKE_THROUGH ] as RenderMark ) ( text )
154+ expect ( renderString ) . toEqual ( '<strike>text</strike>' )
155+ done ( )
156+ } )
157+ it ( 'Should return bold string' , done => {
158+ const renderString = ( defaultNodeOption [ MarkType . INLINE_CODE ] as RenderMark ) ( text )
159+ expect ( renderString ) . toEqual ( '<span>text</span>' )
160+ done ( )
161+ } )
162+ it ( 'Should return bold string' , done => {
163+ const renderString = ( defaultNodeOption [ MarkType . SUBSCRIPT ] as RenderMark ) ( text )
164+ expect ( renderString ) . toEqual ( '<sub>text</sub>' )
165+ done ( )
166+ } )
167+ it ( 'Should return bold string' , done => {
168+ const renderString = ( defaultNodeOption [ MarkType . SUPERSCRIPT ] as RenderMark ) ( text )
169+ expect ( renderString ) . toEqual ( '<sup>text</sup>' )
170+ done ( )
171+ } )
172+ } )
0 commit comments