diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-05-20 18:17:53 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-05-20 18:17:53 +0100 |
| commit | 712e328c04ee6e23590ebd753723c2cb7e40f750 (patch) | |
| tree | 749f7d62a04ee7bfc788268532f7fb694cf95e8b /test | |
| parent | 0894561a06782812a4e73725ede6642da4501db0 (diff) | |
Support merged paragraphs when revisions are tracked
Diffstat (limited to 'test')
| -rw-r--r-- | test/docx/body-reader.tests.js | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/test/docx/body-reader.tests.js b/test/docx/body-reader.tests.js index f5c8b87..bbc3499 100644 --- a/test/docx/body-reader.tests.js +++ b/test/docx/body-reader.tests.js @@ -33,11 +33,19 @@ var testing = require("../testing"); var test = require("../test")(module); var createFakeDocxFile = testing.createFakeDocxFile; -function readXmlElement(element, options) { +function createBodyReaderForTests(options) { options = Object.create(options || {}); options.styles = options.styles || new Styles({}, {}); options.numbering = options.numbering || defaultNumbering; - return createBodyReader(options).readXmlElement(element); + return createBodyReader(options); +} + +function readXmlElement(element, options) { + return createBodyReaderForTests(options).readXmlElement(element); +} + +function readXmlElements(element, options) { + return createBodyReaderForTests(options).readXmlElements(element); } function readXmlElementValue(element, options) { @@ -46,6 +54,12 @@ function readXmlElementValue(element, options) { return result.value; } +function readXmlElementsValue(elements, options) { + var result = readXmlElements(elements, options); + assert.deepEqual(result.messages, []); + return result.value; +} + var fakeContentTypes = { findContentType: function(filePath) { var extensionTypes = { @@ -225,6 +239,47 @@ test("numbering properties are ignored if w:numId is missing", function() { assert.equal(numberingLevel, null); }); +test("content of deleted paragraph is prepended to next paragraph", function() { + var styles = new Styles( + { + "Heading1": {name: "Heading 1"}, + "Heading2": {name: "Heading 2"} + }, + {} + ); + var bodyXml = [ + new XmlElement("w:p", {}, [ + new XmlElement("w:pPr", {}, [ + new XmlElement("w:pStyle", {"w:val": "Heading1"}, []), + new XmlElement("w:rPr", {}, [ + new XmlElement("w:del") + ]) + ]), + runOfText("One") + ]), + new XmlElement("w:p", {}, [ + new XmlElement("w:pPr", {}, [ + new XmlElement("w:pStyle", {"w:val": "Heading2"}, []) + ]), + runOfText("Two") + ]) + ]; + + var result = readXmlElementsValue(bodyXml, {styles: styles}); + + assertThat(result, contains( + hasProperties({ + type: documents.types.paragraph, + styleId: "Heading2", + children: contains( + documents.run([documents.text("One")]), + documents.run([documents.text("Two")]) + ) + }) + )); + +}); + test("complex fields", (function() { var uri = "http://example.com"; var beginXml = new XmlElement("w:r", {}, [ |
