notes-reader.tests.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. var assert = require("assert");
  2. var createFootnotesReader = require("../../lib/docx/notes-reader").createFootnotesReader;
  3. var createBodyReader = require("../../lib/docx/body-reader").createBodyReader;
  4. var stylesReader = require("../../lib/docx/styles-reader");
  5. var documents = require("../../lib/documents");
  6. var XmlElement = require("../../lib/xml").Element;
  7. var test = require("../test")(module);
  8. test('ID and body of footnote are read', function() {
  9. var bodyReader = new createBodyReader({styles: stylesReader.defaultStyles});
  10. var footnoteBody = [new XmlElement("w:p", {}, [])];
  11. var footnotes = createFootnotesReader(bodyReader)(
  12. new XmlElement("w:footnotes", {}, [
  13. new XmlElement("w:footnote", {"w:id": "1"}, footnoteBody)
  14. ])
  15. );
  16. assert.equal(footnotes.value.length, 1);
  17. assert.deepEqual(footnotes.value[0].body, [new documents.Paragraph([])]);
  18. assert.deepEqual(footnotes.value[0].noteId, "1");
  19. });
  20. footnoteTypeIsIgnored('continuationSeparator');
  21. footnoteTypeIsIgnored('separator');
  22. function footnoteTypeIsIgnored(type) {
  23. test('footnotes of type ' + type + ' are ignored', function() {
  24. var footnotes = createFootnotesReader()(
  25. new XmlElement("w:footnotes", {}, [
  26. new XmlElement("w:footnote", {"w:id": "1", "w:type": type}, [])
  27. ])
  28. );
  29. assert.equal(footnotes.value.length, 0);
  30. });
  31. }