@@ -4,12 +4,13 @@ import { findEmbeddedItems } from '../src/helper/find-embeded-object'
44import { Metadata } from '../src/Models/metadata-model'
55import Node from '../src/nodes/node'
66import NodeType from '../src/nodes/node-type'
7+ import { Next , RenderOption } from '../src/options'
78import { defaultOptions } from '../src/options/default-options'
89import { assetReferenceJson , embeddedAssetJsonEntry , embeddedEntryJsonEntry , entryReferenceBlockJson , entryReferenceInlineJson , entryReferenceLinkJson } from './mock/json-element-mock'
910import { embeddedAssetWithRenderOption , embeddedObjectDefaultRender , embeddedObjectWithRenderOption } from './mock/render-options'
1011describe ( 'Reference Node To HTML' , ( ) => {
1112 it ( 'Should return blank for undefined entry' , done => {
12- const node = assetReferenceJson . children [ 0 ] as undefined as Node
13+ const node = assetReferenceJson . children [ 0 ] as unknown as Node
1314 const renderOption = { }
1415
1516 const resultHTML = referenceToHTML ( node , renderOption )
@@ -47,7 +48,7 @@ describe('Reference Node To HTML', () => {
4748 } )
4849
4950 it ( 'Should return HTML for embedded asset' , done => {
50- const node = assetReferenceJson . children [ 0 ] as undefined as Node
51+ const node = assetReferenceJson . children [ 0 ] as unknown as Node
5152 const renderOption = { }
5253
5354 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -59,7 +60,7 @@ describe('Reference Node To HTML', () => {
5960 } )
6061
6162 it ( 'Should return HTML for embedded block entry' , done => {
62- const node = entryReferenceBlockJson . children [ 0 ] as undefined as Node
63+ const node = entryReferenceBlockJson . children [ 0 ] as unknown as Node
6364 const renderOption = { }
6465
6566 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -70,7 +71,7 @@ describe('Reference Node To HTML', () => {
7071 } )
7172
7273 it ( 'Should return HTML for embedded link entry' , done => {
73- const node = entryReferenceLinkJson . children [ 0 ] as undefined as Node
74+ const node = entryReferenceLinkJson . children [ 0 ] as unknown as Node
7475 const renderOption = { }
7576
7677 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -81,7 +82,7 @@ describe('Reference Node To HTML', () => {
8182 } )
8283
8384 it ( 'Should return HTML for embedded inline entry' , done => {
84- const node = entryReferenceInlineJson . children [ 0 ] as undefined as Node
85+ const node = entryReferenceInlineJson . children [ 0 ] as unknown as Node
8586 const renderOption = { }
8687
8788 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -93,8 +94,8 @@ describe('Reference Node To HTML', () => {
9394
9495 // Custom render option
9596 it ( 'Should return custom HTML for embedded asset' , done => {
96- const node = assetReferenceJson . children [ 0 ] as undefined as Node
97- const renderOption = embeddedAssetWithRenderOption . renderOption
97+ const node = assetReferenceJson . children [ 0 ] as unknown as Node
98+ const renderOption = embeddedAssetWithRenderOption . renderOption as RenderOption
9899
99100 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
100101 return findEmbeddedItems ( metadata , embeddedAssetJsonEntry ) [ 0 ]
@@ -104,8 +105,8 @@ describe('Reference Node To HTML', () => {
104105 } )
105106
106107 it ( 'Should return custom HTML for embedded block entry' , done => {
107- const node = entryReferenceBlockJson . children [ 0 ] as undefined as Node
108- const renderOption = embeddedObjectWithRenderOption . renderOption
108+ const node = entryReferenceBlockJson . children [ 0 ] as unknown as Node
109+ const renderOption = embeddedObjectWithRenderOption . renderOption as RenderOption
109110
110111 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
111112 return findEmbeddedItems ( metadata , embeddedEntryJsonEntry ) [ 0 ]
@@ -115,8 +116,8 @@ describe('Reference Node To HTML', () => {
115116 } )
116117
117118 it ( 'Should return custom HTML for embedded inline entry' , done => {
118- const node = entryReferenceInlineJson . children [ 0 ] as undefined as Node
119- const renderOption = embeddedObjectWithRenderOption . renderOption
119+ const node = entryReferenceInlineJson . children [ 0 ] as unknown as Node
120+ const renderOption = embeddedObjectWithRenderOption . renderOption as RenderOption
120121
121122 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
122123 return findEmbeddedItems ( metadata , embeddedEntryJsonEntry ) [ 0 ]
@@ -126,8 +127,8 @@ describe('Reference Node To HTML', () => {
126127 } )
127128
128129 it ( 'Should return custom default HTML for embedded inline entry' , done => {
129- const node = entryReferenceBlockJson . children [ 0 ] as undefined as Node
130- const renderOption = embeddedObjectDefaultRender . renderOption
130+ const node = entryReferenceBlockJson . children [ 0 ] as unknown as Node
131+ const renderOption = embeddedObjectDefaultRender . renderOption as RenderOption
131132
132133 const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
133134 return findEmbeddedItems ( metadata , embeddedEntryJsonEntry ) [ 0 ]
@@ -138,4 +139,32 @@ describe('Reference Node To HTML', () => {
138139 </div>` )
139140 done ( )
140141 } )
142+
143+ it ( 'Should return image for undefined node asset' , done => {
144+ const node = assetReferenceJson . children [ 0 ] as unknown as Node
145+ const renderOption = {
146+ 'reference' : ( node : Node , next : Next ) => {
147+ return `<img src=${ node . attrs [ 'asset-link' ] } >` ;
148+ }
149+ }
150+
151+ const resultHTML = referenceToHTML ( node , renderOption )
152+ expect ( resultHTML ) . toEqual ( '<img src=https://image.url/11.jpg>' )
153+ done ( )
154+ } )
155+
156+ it ( 'Should return HTML for embedded link entry' , done => {
157+ const node = entryReferenceLinkJson . children [ 0 ] as unknown as Node
158+ const renderOption = {
159+ 'reference' : ( node : Node , next : Next ) => {
160+ return `<a href=\"${ node . attrs [ 'entry-uid' ] } \">${ node . attrs . href } </a>` ;
161+ }
162+ }
163+
164+ const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
165+ return findEmbeddedItems ( metadata , { uid : 'uid' } ) [ 0 ]
166+ } )
167+ expect ( resultHTML ) . toEqual ( '<a href=\"entry_uid_20\">/copy-of-entry-final-02</a>' )
168+ done ( )
169+ } )
141170} )
0 commit comments