@@ -4,12 +4,13 @@ import { findEmbeddedItems } from '../src/helper/find-embeded-object'
4
4
import { Metadata } from '../src/Models/metadata-model'
5
5
import Node from '../src/nodes/node'
6
6
import NodeType from '../src/nodes/node-type'
7
+ import { Next , RenderOption } from '../src/options'
7
8
import { defaultOptions } from '../src/options/default-options'
8
9
import { assetReferenceJson , embeddedAssetJsonEntry , embeddedEntryJsonEntry , entryReferenceBlockJson , entryReferenceInlineJson , entryReferenceLinkJson } from './mock/json-element-mock'
9
10
import { embeddedAssetWithRenderOption , embeddedObjectDefaultRender , embeddedObjectWithRenderOption } from './mock/render-options'
10
11
describe ( 'Reference Node To HTML' , ( ) => {
11
12
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
13
14
const renderOption = { }
14
15
15
16
const resultHTML = referenceToHTML ( node , renderOption )
@@ -47,7 +48,7 @@ describe('Reference Node To HTML', () => {
47
48
} )
48
49
49
50
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
51
52
const renderOption = { }
52
53
53
54
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -59,7 +60,7 @@ describe('Reference Node To HTML', () => {
59
60
} )
60
61
61
62
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
63
64
const renderOption = { }
64
65
65
66
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -70,7 +71,7 @@ describe('Reference Node To HTML', () => {
70
71
} )
71
72
72
73
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
74
75
const renderOption = { }
75
76
76
77
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -81,7 +82,7 @@ describe('Reference Node To HTML', () => {
81
82
} )
82
83
83
84
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
85
86
const renderOption = { }
86
87
87
88
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
@@ -93,8 +94,8 @@ describe('Reference Node To HTML', () => {
93
94
94
95
// Custom render option
95
96
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
98
99
99
100
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
100
101
return findEmbeddedItems ( metadata , embeddedAssetJsonEntry ) [ 0 ]
@@ -104,8 +105,8 @@ describe('Reference Node To HTML', () => {
104
105
} )
105
106
106
107
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
109
110
110
111
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
111
112
return findEmbeddedItems ( metadata , embeddedEntryJsonEntry ) [ 0 ]
@@ -115,8 +116,8 @@ describe('Reference Node To HTML', () => {
115
116
} )
116
117
117
118
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
120
121
121
122
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
122
123
return findEmbeddedItems ( metadata , embeddedEntryJsonEntry ) [ 0 ]
@@ -126,8 +127,8 @@ describe('Reference Node To HTML', () => {
126
127
} )
127
128
128
129
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
131
132
132
133
const resultHTML = referenceToHTML ( node , renderOption , ( metadata : Metadata ) => {
133
134
return findEmbeddedItems ( metadata , embeddedEntryJsonEntry ) [ 0 ]
@@ -138,4 +139,32 @@ describe('Reference Node To HTML', () => {
138
139
</div>` )
139
140
done ( )
140
141
} )
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
+ } )
141
170
} )
0 commit comments