aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-11-03 16:22:19 +0000
committerMichael Williamson <mike@zwobble.org>2017-11-03 16:22:19 +0000
commit0748bff0572c57ce8a62a92f19071c16a0a76c02 (patch)
tree06378409dec5c03d66890e01d597daab6f0e2d5a
parent9b80d92d3f1ed6b88d42cc3af870b67b5e406013 (diff)
Add test for missing table styles
-rw-r--r--lib/docx/styles-reader.js2
-rw-r--r--test/docx/body-reader.tests.js12
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/docx/styles-reader.js b/lib/docx/styles-reader.js
index 7bf5475..ae288ab 100644
--- a/lib/docx/styles-reader.js
+++ b/lib/docx/styles-reader.js
@@ -16,6 +16,8 @@ function Styles(paragraphStyles, characterStyles, tableStyles) {
};
}
+Styles.EMPTY = new Styles({}, {}, {});
+
function readStylesXml(root) {
var paragraphStyles = {};
var characterStyles = {};
diff --git a/test/docx/body-reader.tests.js b/test/docx/body-reader.tests.js
index ef3622c..5b6f95b 100644
--- a/test/docx/body-reader.tests.js
+++ b/test/docx/body-reader.tests.js
@@ -567,6 +567,18 @@ test("table has style ID and name read from table properties if present", functi
assert.deepEqual(table.styleName, "Normal Table");
});
+test("warning is emitted when table style cannot be found", function() {
+ var styleXml = new XmlElement("w:tblStyle", {"w:val": "TableNormal"}, []);
+ var propertiesXml = new XmlElement("w:tblPr", {}, [styleXml]);
+ var tableXml = new XmlElement("w:tbl", {}, [propertiesXml]);
+
+ var result = readXmlElement(tableXml, {styles: Styles.EMPTY});
+ var table = result.value;
+ assert.deepEqual(table.styleId, "TableNormal");
+ assert.deepEqual(table.styleName, null);
+ assert.deepEqual(result.messages, [warning("Table style with ID TableNormal was referenced but not defined in the document")]);
+});
+
test("w:tblHeader marks table row as header", function() {
var tableXml = new XmlElement("w:tbl", {}, [
new XmlElement("w:tr", {}, [