MindMap/frontend/node_modules/mammoth/test/docx/document-xml-reader.tests.js

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?/);
});