aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2021-08-01 10:52:16 +0100
committerMichael Williamson <mike@zwobble.org>2021-08-01 10:52:16 +0100
commit6f0a685d9d03343184088565feb12a1e947684af (patch)
tree19f75c2053e6d14210eda46a134dec7de77742c3 /test
parent8e88d605ae84ff3a55baf6a8c881d102e9ea1045 (diff)
Add tests for raw text extraction
Diffstat (limited to 'test')
-rw-r--r--test/raw-text.tests.js53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/raw-text.tests.js b/test/raw-text.tests.js
new file mode 100644
index 0000000..f7b13b2
--- /dev/null
+++ b/test/raw-text.tests.js
@@ -0,0 +1,53 @@
+var assert = require("assert");
+
+var documents = require("../lib/documents");
+var test = require("./test")(module);
+var convertElementToRawText = require("../lib/raw-text").convertElementToRawText;
+
+
+test('text node is converted to text content', function() {
+ var element = new documents.Text("Hello.");
+
+ var result = convertElementToRawText(element);
+
+ assert.strictEqual(result, "Hello.");
+});
+
+test('paragraphs are terminated with newlines', function() {
+ var element = new documents.Paragraph(
+ [
+ new documents.Text("Hello "),
+ new documents.Text("world.")
+ ],
+ {}
+ );
+
+ var result = convertElementToRawText(element);
+
+ assert.strictEqual(result, "Hello world.\n\n");
+});
+
+test('children recursively are converted to text', function() {
+ var element = new documents.Document([
+ new documents.Paragraph(
+ [
+ new documents.Text("Hello "),
+ new documents.Text("world.")
+ ],
+ {}
+ )
+ ]);
+
+ var result = convertElementToRawText(element);
+
+ assert.strictEqual(result, "Hello world.\n\n");
+});
+
+
+test('non-text element without children is converted to empty string', function() {
+ var element = documents.lineBreak;
+
+ var result = convertElementToRawText(element);
+
+ assert.strictEqual(result, "");
+});