summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-05-20 18:17:53 +0100
committerMichael Williamson <mike@zwobble.org>2023-05-20 18:17:53 +0100
commit712e328c04ee6e23590ebd753723c2cb7e40f750 (patch)
tree749f7d62a04ee7bfc788268532f7fb694cf95e8b /test
parent0894561a06782812a4e73725ede6642da4501db0 (diff)
Support merged paragraphs when revisions are tracked
Diffstat (limited to 'test')
-rw-r--r--test/docx/body-reader.tests.js59
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", {}, [