42 lines
1.6 KiB
JavaScript
42 lines
1.6 KiB
JavaScript
var assert = require("assert");
|
|
|
|
var documents = require("../../lib/documents");
|
|
var DocumentXmlReader = require("../../lib/docx/document-xml-reader").DocumentXmlReader;
|
|
var xml = require("../../lib/xml");
|
|
var test = require("../test")(module);
|
|
var createBodyReaderForTests = require("./testing").createBodyReaderForTests;
|
|
|
|
test("when body element is present then body is read", function() {
|
|
var bodyReader = createBodyReaderForTests({});
|
|
var documentXmlReader = new DocumentXmlReader({
|
|
bodyReader: bodyReader
|
|
});
|
|
var textXml = xml.element("w:t", {}, [xml.text("Hello!")]);
|
|
var runXml = xml.element("w:r", {}, [textXml]);
|
|
var paragraphXml = xml.element("w:p", {}, [runXml]);
|
|
var bodyXml = xml.element("w:body", {}, [paragraphXml]);
|
|
var documentXml = xml.element("w:document", {}, [bodyXml]);
|
|
|
|
var result = documentXmlReader.convertXmlToDocument(documentXml);
|
|
|
|
assert.deepEqual(result.messages, []);
|
|
assert.deepEqual(result.value, documents.document(
|
|
[documents.paragraph([documents.run([documents.text("Hello!")])])],
|
|
{}
|
|
));
|
|
});
|
|
|
|
test("when body element is not present then error is thrown", function() {
|
|
var bodyReader = createBodyReaderForTests({});
|
|
var documentXmlReader = new DocumentXmlReader({
|
|
bodyReader: bodyReader
|
|
});
|
|
var paragraphXml = xml.element("w:p", {}, []);
|
|
var bodyXml = xml.element("w:body2", {}, [paragraphXml]);
|
|
var documentXml = xml.element("w:document", {}, [bodyXml]);
|
|
|
|
assert.throws(function() {
|
|
documentXmlReader.convertXmlToDocument(documentXml);
|
|
}, /Could not find the body element: are you sure this is a docx file?/);
|
|
});
|