From 5638653f05451a0b862aaf057f2c96409ebe6f5b Mon Sep 17 00:00:00 2001 From: Elson Correia Date: Tue, 6 Jul 2021 16:59:43 -0400 Subject: [PATCH 1/2] set to array --- core/parser/render-by-attribute.js | 4 +++- core/parser/render-by-attribute.spec.js | 23 +++++++++++++++++++++++ package-lock.json | 6 ++++-- 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 core/parser/render-by-attribute.spec.js diff --git a/core/parser/render-by-attribute.js b/core/parser/render-by-attribute.js index 3a209329..b0a652a2 100644 --- a/core/parser/render-by-attribute.js +++ b/core/parser/render-by-attribute.js @@ -3,7 +3,9 @@ const {processCustomAttributeValue} = require("./utils/process-custom-attribute- const {defaultAttributesName} = require("../default-attributes"); function renderByAttribute(node, options) { - const customAttrs = new Set([...defaultAttributesName, ...Object.keys(options.customAttributes)]); + const customAttrs = Array.from( + new Set([...defaultAttributesName, ...Object.keys(options.customAttributes)]) + ); for (let attr of customAttrs) { if (node.attributes.hasOwnProperty(attr) && options.customAttributes[attr]) { diff --git a/core/parser/render-by-attribute.spec.js b/core/parser/render-by-attribute.spec.js new file mode 100644 index 00000000..e56d495a --- /dev/null +++ b/core/parser/render-by-attribute.spec.js @@ -0,0 +1,23 @@ +const {defaultAttributesMap} = require("../default-attributes"); +const {HTMLNode} = require("./HTMLNode"); +const {renderByAttribute} = require('./render-by-attribute'); + +describe('render-by-attribute', () => { + it('should return node if not special attr', () => { + const node = (new HTMLNode('

paragraph

')).childNodes()[0]; + + expect(renderByAttribute(node, { + customAttributes: defaultAttributesMap, + data: {} + })).toEqual(node) + }); + + it('should string if attribute match', () => { + const node = (new HTMLNode('

{$item}

')).childNodes()[0]; + + expect(renderByAttribute(node, { + customAttributes: defaultAttributesMap, + data: {} + })).toEqual('

1

2

') + }); +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 833075f8..bfb8b678 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@beforesemicolon/html-plus", - "version": "0.4.0", + "version": "0.4.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -6204,6 +6204,7 @@ "version": "14.17.1", "resolved": "https://registry.npmjs.org/node/-/node-14.17.1.tgz", "integrity": "sha512-Ou0yj5tRPkXauOYc9bvN++Z2fXSIgKdeHGMKKPURmCUkoh22Cd8Ma35If4hzo6HiMg2N+RkPVaWmWgfAN8mVlw==", + "dev": true, "requires": { "node-bin-setup": "^1.0.0" } @@ -6211,7 +6212,8 @@ "node-bin-setup": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/node-bin-setup/-/node-bin-setup-1.0.6.tgz", - "integrity": "sha512-uPIxXNis1CRbv1DwqAxkgBk5NFV3s7cMN/Gf556jSw6jBvV7ca4F9lRL/8cALcZecRibeqU+5dFYqFFmzv5a0Q==" + "integrity": "sha512-uPIxXNis1CRbv1DwqAxkgBk5NFV3s7cMN/Gf556jSw6jBvV7ca4F9lRL/8cALcZecRibeqU+5dFYqFFmzv5a0Q==", + "dev": true }, "node-gyp": { "version": "3.8.0", From 2892ba5f29e0da32c81f992a793a2ad93a6f830b Mon Sep 17 00:00:00 2001 From: Elson Correia Date: Tue, 6 Jul 2021 17:00:09 -0400 Subject: [PATCH 2/2] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 608fe623..b79625b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@beforesemicolon/html-plus", - "version": "0.4.3", + "version": "0.4.4", "description": "HTML Template Engine/Language", "main": "dist/index.js", "files": [