summaryrefslogtreecommitdiff
path: root/test/transforms.tests.js
blob: c6656ddd6364242224a1a427f41c52bf6a9c2f11 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var assert = require("assert");

var transforms = require("../lib/transforms");
var test = require("./test")(module);


test("getDescendants()", {
    "returns nothing if element has no children property": function() {
        assert.deepEqual(transforms.getDescendants({}), []);
    },
    
    "returns nothing if element has empty children": function() {
        assert.deepEqual(transforms.getDescendants({children: []}), []);
    },
    
    "includes children": function() {
        var element = {
            children: [{name: "child 1"}, {name: "child 2"}]
        }
        assert.deepEqual(
            transforms.getDescendants(element),
            [{name: "child 1"}, {name: "child 2"}]
        );
    },
    
    "includes indirect descendants": function() {
        var grandchild = {name: "grandchild"};
        var child = {name: "child", children: [grandchild]};
        var element = {children: [child]};
        assert.deepEqual(
            transforms.getDescendants(element),
            [grandchild, child]
        );
    }
});


test("getDescendantsOfType()", {
    "filters descendants to type": function() {
        var paragraph = {type: "paragraph"};
        var run = {type: "run"};
        var element = {
            children: [paragraph, run]
        };
        assert.deepEqual(
            transforms.getDescendantsOfType(element, "run"),
            [run]
        );
    }
});