aboutsummaryrefslogtreecommitdiff
path: root/test/transforms.tests.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2017-04-13 21:57:00 +0100
committerMichael Williamson <mike@zwobble.org>2017-04-13 21:57:00 +0100
commitb2bccab123b94b53b4789974ce41125e8e7735fa (patch)
treeb645fe9cf71a59bb43b88ec7188a48c2b3b2ef75 /test/transforms.tests.js
parent96b8496dc47880693b646f81cfd440de8aa5f9ae (diff)
Add transforms.run
Diffstat (limited to 'test/transforms.tests.js')
-rw-r--r--test/transforms.tests.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/test/transforms.tests.js b/test/transforms.tests.js
index c6656dd..d9112b2 100644
--- a/test/transforms.tests.js
+++ b/test/transforms.tests.js
@@ -1,9 +1,84 @@
var assert = require("assert");
+var _ = require("underscore");
+
+var documents = require("../lib/documents");
var transforms = require("../lib/transforms");
var test = require("./test")(module);
+test("paragraph()", {
+ "paragraph is transformed": function() {
+ var paragraph = documents.paragraph([]);
+ var result = transforms.paragraph(function() {
+ return documents.tab();
+ })(paragraph);
+ assert.deepEqual(result, documents.tab());
+ },
+
+ "non-paragraph elements are not transformed": function() {
+ var run = documents.run([]);
+ var result = transforms.paragraph(function() {
+ return documents.tab();
+ })(run);
+ assert.deepEqual(result, documents.run([]));
+ }
+});
+
+
+test("run()", {
+ "run is transformed": function() {
+ var run = documents.run([]);
+ var result = transforms.run(function() {
+ return documents.tab();
+ })(run);
+ assert.deepEqual(result, documents.tab());
+ },
+
+ "non-run elements are not transformed": function() {
+ var paragraph = documents.paragraph([]);
+ var result = transforms.run(function() {
+ return documents.tab();
+ })(paragraph);
+ assert.deepEqual(result, documents.paragraph([]));
+ }
+});
+
+
+test("elements()", {
+ "all descendants are transformed": function() {
+ var root = {
+ children: [
+ {
+ children: [
+ {}
+ ]
+ }
+ ]
+ };
+ var currentCount = 0;
+ function setCount(node) {
+ currentCount++;
+ return _.extend(node, {count: currentCount});
+ }
+
+ var result = transforms._elements(setCount)(root);
+
+ assert.deepEqual(result, {
+ count: 3,
+ children: [
+ {
+ count: 2,
+ children: [
+ {count: 1}
+ ]
+ }
+ ]
+ });
+ }
+});
+
+
test("getDescendants()", {
"returns nothing if element has no children property": function() {
assert.deepEqual(transforms.getDescendants({}), []);