comments-reader.tests.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. var assert = require("assert");
  2. var createCommentsReader = require("../../lib/docx/comments-reader").createCommentsReader;
  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 xml = require("../../lib/xml");
  7. var test = require("../test")(module);
  8. function readComment(element) {
  9. var bodyReader = createBodyReader({styles: stylesReader.defaultStyles});
  10. var commentsReader = createCommentsReader(bodyReader);
  11. var comments = commentsReader(element);
  12. assert.equal(comments.value.length, 1);
  13. return comments.value[0];
  14. }
  15. test('ID and body of comment are read', function() {
  16. var body = [xml.element("w:p")];
  17. var comment = readComment(xml.element("w:comments", {}, [
  18. xml.element("w:comment", {"w:id": "1"}, body)
  19. ]));
  20. assert.deepEqual(comment.body, [new documents.Paragraph([])]);
  21. assert.deepEqual(comment.commentId, "1");
  22. });
  23. test('when optional attributes of comment are missing then they are read as null', function() {
  24. var comment = readComment(xml.element("w:comments", {}, [
  25. xml.element("w:comment", {"w:id": "1"})
  26. ]));
  27. assert.strictEqual(comment.authorName, null);
  28. assert.strictEqual(comment.authorInitials, null);
  29. });
  30. test('when optional attributes of comment are blank then they are read as null', function() {
  31. var comment = readComment(xml.element("w:comments", {}, [
  32. xml.element("w:comment", {"w:id": "1", "w:author": " ", "w:initials": " "})
  33. ]));
  34. assert.strictEqual(comment.authorName, null);
  35. assert.strictEqual(comment.authorInitials, null);
  36. });
  37. test('when optional attributes of comment are not blank then they are read', function() {
  38. var comment = readComment(xml.element("w:comments", {}, [
  39. xml.element("w:comment", {"w:id": "1", "w:author": "The Piemaker", "w:initials": "TP"})
  40. ]));
  41. assert.strictEqual(comment.authorName, "The Piemaker");
  42. assert.strictEqual(comment.authorInitials, "TP");
  43. });