document-xml-reader.tests.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. var assert = require("assert");
  2. var documents = require("../../lib/documents");
  3. var DocumentXmlReader = require("../../lib/docx/document-xml-reader").DocumentXmlReader;
  4. var xml = require("../../lib/xml");
  5. var test = require("../test")(module);
  6. var createBodyReaderForTests = require("./testing").createBodyReaderForTests;
  7. test("when body element is present then body is read", function() {
  8. var bodyReader = createBodyReaderForTests({});
  9. var documentXmlReader = new DocumentXmlReader({
  10. bodyReader: bodyReader
  11. });
  12. var textXml = xml.element("w:t", {}, [xml.text("Hello!")]);
  13. var runXml = xml.element("w:r", {}, [textXml]);
  14. var paragraphXml = xml.element("w:p", {}, [runXml]);
  15. var bodyXml = xml.element("w:body", {}, [paragraphXml]);
  16. var documentXml = xml.element("w:document", {}, [bodyXml]);
  17. var result = documentXmlReader.convertXmlToDocument(documentXml);
  18. assert.deepEqual(result.messages, []);
  19. assert.deepEqual(result.value, documents.document(
  20. [documents.paragraph([documents.run([documents.text("Hello!")])])],
  21. {}
  22. ));
  23. });
  24. test("when body element is not present then error is thrown", function() {
  25. var bodyReader = createBodyReaderForTests({});
  26. var documentXmlReader = new DocumentXmlReader({
  27. bodyReader: bodyReader
  28. });
  29. var paragraphXml = xml.element("w:p", {}, []);
  30. var bodyXml = xml.element("w:body2", {}, [paragraphXml]);
  31. var documentXml = xml.element("w:document", {}, [bodyXml]);
  32. assert.throws(function() {
  33. documentXmlReader.convertXmlToDocument(documentXml);
  34. }, /Could not find the body element: are you sure this is a docx file?/);
  35. });