diff --git a/spec/stopNodes_spec.js b/spec/stopNodes_spec.js index 25f0d6b5..afefa5b5 100644 --- a/spec/stopNodes_spec.js +++ b/spec/stopNodes_spec.js @@ -1,64 +1,64 @@ "use strict"; -const {XMLParser, XMLValidator} = require("../src/fxp"); +const { XMLParser, XMLValidator } = require("../src/fxp"); const he = require("he"); -describe("XMLParser StopNodes", function() { - it("1a. should support single stopNode", function() { - const xmlData = `test 1

p 1

div 1
`; - const expected = { - "issue": { - "title": "test 1", - "fix1": "

p 1

div 1
" - } - }; - - const options = { - attributeNamePrefix: "", - ignoreAttributes: false, - parseAttributeValue: true, - stopNodes: ["issue.fix1"] - }; - const parser = new XMLParser(options); - let result = parser.parse(xmlData); - - // console.log(JSON.stringify(result,null,4)); - expect(result).toEqual(expected); - - result = XMLValidator.validate(xmlData); - expect(result).toBe(true); - }); +describe("XMLParser StopNodes", function () { + it("1a. should support single stopNode", function () { + const xmlData = `test 1

p 1

div 1
`; + const expected = { + "issue": { + "title": "test 1", + "fix1": "

p 1

div 1
" + } + }; - it("1b. 3. should support more than one stopNodes, with or without attr", function() { - const xmlData = `test 1

p 1

div 1

p 2

div 2
`; - const expected = { - "issue": { - "title": "test 1", - "fix1": { - "#text": "

p 1

div 1
", - "lang": "en" - }, - "fix2": "

p 2

div 2
" - } - }; - - const options = { - attributeNamePrefix: "", - ignoreAttributes: false, - parseAttributeValue: true, - stopNodes: ["issue.fix1", "issue.fix2"] - }; - const parser = new XMLParser(options); - let result = parser.parse(xmlData); - - // console.log(JSON.stringify(result,null,4)); - expect(result).toEqual(expected); - - result = XMLValidator.validate(xmlData); - expect(result).toBe(true); - }); + const options = { + attributeNamePrefix: "", + ignoreAttributes: false, + parseAttributeValue: true, + stopNodes: ["issue.fix1"] + }; + const parser = new XMLParser(options); + let result = parser.parse(xmlData); + + // console.log(JSON.stringify(result,null,4)); + expect(result).toEqual(expected); + + result = XMLValidator.validate(xmlData); + expect(result).toBe(true); + }); + + it("1b. 3. should support more than one stopNodes, with or without attr", function () { + const xmlData = `test 1

p 1

div 1

p 2

div 2
`; + const expected = { + "issue": { + "title": "test 1", + "fix1": { + "#text": "

p 1

div 1
", + "lang": "en" + }, + "fix2": "

p 2

div 2
" + } + }; + + const options = { + attributeNamePrefix: "", + ignoreAttributes: false, + parseAttributeValue: true, + stopNodes: ["issue.fix1", "issue.fix2"] + }; + const parser = new XMLParser(options); + let result = parser.parse(xmlData); + + // console.log(JSON.stringify(result,null,4)); + expect(result).toEqual(expected); + + result = XMLValidator.validate(xmlData); + expect(result).toBe(true); + }); - it("1c. have two stopNodes, one within the other", function() { + it("1c. have two stopNodes, one within the other", function () { const xmlData = `test 1

p 1

p 2

div 2
div 1
`; const expected = { "issue": { @@ -72,12 +72,12 @@ describe("XMLParser StopNodes", function() { const options = { attributeNamePrefix: "", - ignoreAttributes: false, - parseAttributeValue: true, - stopNodes: ["issue.fix1", "issue.fix2"] - }; - const parser = new XMLParser(options); - let result = parser.parse(xmlData); + ignoreAttributes: false, + parseAttributeValue: true, + stopNodes: ["issue.fix1", "issue.fix2"] + }; + const parser = new XMLParser(options); + let result = parser.parse(xmlData); //console.log(JSON.stringify(result,null,4)); expect(result).toEqual(expected); @@ -86,81 +86,81 @@ describe("XMLParser StopNodes", function() { expect(result).toBe(true); }); - it("2a. stop node has nothing in it", function() { - const xmlData = `test 1`; - const expected = { - "issue": { - "title": "test 1", - "fix1": "" - } - }; - - const options = { - attributeNamePrefix: "", - ignoreAttributes: false, - parseAttributeValue: true, - stopNodes: ["issue.fix1", "issue.fix2"] - }; - const parser = new XMLParser(options); - let result = parser.parse(xmlData); - - //console.log(JSON.stringify(result,null,4)); - expect(result).toEqual(expected); - - result = XMLValidator.validate(xmlData); - expect(result).toBe(true); - }); + it("2a. stop node has nothing in it", function () { + const xmlData = `test 1`; + const expected = { + "issue": { + "title": "test 1", + "fix1": "" + } + }; - it("2b. stop node is self-closing", function() { - const xmlData = `test 1`; - const expected = { - "issue": { - "title": "test 1", - "fix1": "" - } - }; + const options = { + attributeNamePrefix: "", + ignoreAttributes: false, + parseAttributeValue: true, + stopNodes: ["issue.fix1", "issue.fix2"] + }; + const parser = new XMLParser(options); + let result = parser.parse(xmlData); + + //console.log(JSON.stringify(result,null,4)); + expect(result).toEqual(expected); + + result = XMLValidator.validate(xmlData); + expect(result).toBe(true); + }); - const options = { - attributeNamePrefix: "", - ignoreAttributes: false, - parseAttributeValue: true, - stopNodes: ["issue.fix1", "issue.fix2"] + it("2b. stop node is self-closing", function () { + const xmlData = `test 1`; + const expected = { + "issue": { + "title": "test 1", + "fix1": "" + } + }; + + const options = { + attributeNamePrefix: "", + ignoreAttributes: false, + parseAttributeValue: true, + stopNodes: ["issue.fix1", "issue.fix2"] }; const parser = new XMLParser(options); let result = parser.parse(xmlData); - //console.log(JSON.stringify(result,null,4)); - expect(result).toEqual(expected); + //console.log(JSON.stringify(result,null,4)); + expect(result).toEqual(expected); - result = XMLValidator.validate(xmlData); - expect(result).toBe(true); - }); + result = XMLValidator.validate(xmlData); + expect(result).toBe(true); + }); + + it("5. stopNode at root level", function () { + const xmlData = `

p 1

div 1
`; + const expected = { + "fix1": "

p 1

div 1
" + }; + + const options = { + attributeNamePrefix: "", + ignoreAttributes: false, + stopNodes: ["fix1", "fix2"] + }; + const parser = new XMLParser(options); + let result = parser.parse(xmlData); + + //console.log(JSON.stringify(result,null,4)); + expect(result).toEqual(expected); - it("5. stopNode at root level", function() { - const xmlData = `

p 1

div 1
`; - const expected = { - "fix1": "

p 1

div 1
" - }; - - const options = { - attributeNamePrefix: "", - ignoreAttributes: false, - stopNodes: ["fix1", "fix2"] - }; - const parser = new XMLParser(options); - let result = parser.parse(xmlData); - - //console.log(JSON.stringify(result,null,4)); - expect(result).toEqual(expected); - - result = XMLValidator.validate(xmlData, { - allowBooleanAttributes: true - }); - expect(result).toBe(true); + result = XMLValidator.validate(xmlData, { + allowBooleanAttributes: true }); - - it("should skip all nodes of given name irrespective of their level", function() { - const xmlData = ` + expect(result).toBe(true); + }); + + it("should skip all nodes of given name irrespective of their level", function () { + const xmlData = `

p 1

@@ -172,34 +172,34 @@ describe("XMLParser StopNodes", function() {
`; - const expected = { - "root": { - "fix1": "\n

p 1

\n
div 1
\n ", - "another": { - "fix1": "\n str\n " - } - } - }; - - const options = { - attributeNamePrefix: "", - ignoreAttributes: false, - stopNodes: ["*.fix1", "fix2"] - }; - const parser = new XMLParser(options); - let result = parser.parse(xmlData); - - // console.log(JSON.stringify(result,null,4)); - expect(result).toEqual(expected); - - result = XMLValidator.validate(xmlData, { - allowBooleanAttributes: true - }); - expect(result).toBe(true); + const expected = { + "root": { + "fix1": "\n

p 1

\n
div 1
\n ", + "another": { + "fix1": "\n str\n " + } + } + }; + + const options = { + attributeNamePrefix: "", + ignoreAttributes: false, + stopNodes: ["*.fix1", "fix2"] + }; + const parser = new XMLParser(options); + let result = parser.parse(xmlData); + + // console.log(JSON.stringify(result,null,4)); + expect(result).toEqual(expected); + + result = XMLValidator.validate(xmlData, { + allowBooleanAttributes: true }); + expect(result).toBe(true); + }); - it("should call tagValueProcessor for stop Node", function() { - const XMLdata = ` + it("should call tagValueProcessor for stop Node", function () { + const XMLdata = `