Skip to content

Commit bf43090

Browse files
Merge pull request #160 from contentstack/development
fix test cases
2 parents 1f259d2 + e93f24a commit bf43090

File tree

7 files changed

+28
-14
lines changed

7 files changed

+28
-14
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
# Changelog
22

3+
## [1.4.0](https://github.com/contentstack/contentstack-utils-javascript/tree/v1.4.0) (2025-04-21)
4+
- Fix: customRenderOption for entry-embedded-as-link nodes
5+
36
## [1.3.20](https://github.com/contentstack/contentstack-utils-javascript/tree/v1.3.20) (2025-02-24)
47
- Fix: Added data-mtec as allowed attribute
5-
- Fix: customRenderOption for entry-embedded-as-link nodes
68

79
## [1.3.19](https://github.com/contentstack/contentstack-utils-javascript/tree/v1.3.19) (2025-02-24)
810
- Fix: Added fix for html injection in keys and values of attributes

__test__/mock/json-element-mock.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1102,14 +1102,14 @@ const entryReferenceLinkJson = {
11021102
"uid": "7626ea98e0e95d602210",
11031103
"type": "reference",
11041104
"attrs": {
1105-
"target": "_self",
1106-
"href": "/copy-of-entry-final-02",
1107-
"display-type": "link",
1108-
"entry-uid": "entry_uid_20",
1109-
"content-type-uid": "embeddedrte",
1110-
"locale": "en-us",
1111-
"type": "entry",
1112-
"class-name": "embedded-entry"
1105+
"target": "_self",
1106+
"href": "/copy-of-entry-final-02",
1107+
"display-type": "link",
1108+
"entry-uid": "entry_uid_20",
1109+
"content-type-uid": "embeddedrte",
1110+
"locale": "en-us",
1111+
"type": "entry",
1112+
"class-name": "embedded-entry"
11131113
},
11141114
"class": "class",
11151115
"children": [

__test__/reference-to-html.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ describe('Reference Node To HTML', () => {
173173
const resultHTML = referenceToHTML(node, renderOption, (metadata: Metadata) => {
174174
return findEmbeddedItems(metadata, { uid: 'uid' })[0]
175175
})
176-
expect(resultHTML).toEqual('<a class=\"embedded-entry\" href=\"/copy-of-entry-final-02\" target=\"_self\">/copy-of-entry-final-02</a>')
176+
expect(resultHTML).toEqual('<a href=\"entry_uid_20\">/copy-of-entry-final-02</a>')
177177
done()
178178
})
179179
})

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@contentstack/utils",
3-
"version": "1.3.20",
3+
"version": "1.4.0",
44
"description": "Contentstack utilities for Javascript",
55
"main": "dist/index.es.js",
66
"types": "dist/types/index.d.ts",

src/helper/enumerate-entries.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ export function referenceToHTML(
7979
): string {
8080

8181
function sendToRenderOption(referenceNode: Node): string {
82-
return (renderOption[referenceNode.type] as RenderNode)(referenceNode, undefined);
82+
const next: Next = (nodes) => nodeChildrenToHTML(nodes, renderOption, renderEmbed);
83+
return (renderOption[referenceNode.type] as RenderNode)(referenceNode, next);
8384
}
8485

8586
if ((node.attrs.type === 'entry' || node.attrs.type === 'asset') && node.attrs['display-type'] === 'link') {

src/options/default-node-options.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,17 @@ export const defaultNodeOption: RenderOption = {
122122
},
123123

124124
['reference']:(node: Node, next: Next) => {
125+
if ((node.attrs.type === 'entry' || node.attrs.type === 'asset') && node.attrs['display-type'] === 'link'){
126+
let aTagAttrs = `${node.attrs.style ? ` style="${node.attrs.style}"` : ``}${node.attrs['class-name'] ? ` class="${node.attrs['class-name']}"` : ``}${node.attrs.id ? ` id="${node.attrs.id}"` : ``} href="${node.attrs.href || node.attrs.url}"`;
127+
if (node.attrs.target) {
128+
aTagAttrs +=` target="${node.attrs.target}"`;
129+
}
130+
if(node.attrs.type == 'asset') {
131+
aTagAttrs += ` type="asset" content-type-uid="sys_assets" ${node.attrs['asset-uid'] ? `data-sys-asset-uid="${node.attrs['asset-uid']}"` : ``} sys-style-type="download"`
132+
}
133+
const aTag = `<a${aTagAttrs}>${sanitizeHTML(next(node.children))}</a>`;
134+
return aTag;
135+
}
125136
if (node.attrs.type === 'asset') {
126137
const src = encodeURI(node.attrs['asset-link']);
127138
const alt = node.attrs?.['redactor-attributes']?.['alt'];

0 commit comments

Comments
 (0)