@@ -5,6 +5,91 @@ var u = require('unist-builder')
5
5
var select = require ( 'unist-util-select' )
6
6
var Index = require ( '.' )
7
7
8
+ var index = Index
9
+
10
+ test ( 'Index' , function ( t ) {
11
+ var node = { type : 'a' , id : 1 }
12
+ var alt = { type : 'b' , id : 1 }
13
+ var tree = { type : 'root' , children : [ node , alt ] }
14
+ var instance = index ( 'id' )
15
+ instance . add ( node )
16
+
17
+ t . deepEqual (
18
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
19
+ [ true , [ node ] ] ,
20
+ 'index(key)'
21
+ )
22
+
23
+ instance = new Index ( 'id' )
24
+ instance . add ( node )
25
+
26
+ t . deepEqual (
27
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
28
+ [ true , [ node ] ] ,
29
+ 'new Index(key)'
30
+ )
31
+
32
+ instance = index ( keyFn )
33
+ instance . add ( node )
34
+
35
+ t . deepEqual (
36
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
37
+ [ true , [ node ] ] ,
38
+ 'index(keyFn)'
39
+ )
40
+
41
+ instance = new Index ( keyFn )
42
+ instance . add ( node )
43
+
44
+ t . deepEqual (
45
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
46
+ [ true , [ node ] ] ,
47
+ 'new Index(keyFn)'
48
+ )
49
+
50
+ instance = index ( tree , 'id' )
51
+
52
+ t . deepEqual (
53
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
54
+ [ true , [ node , alt ] ] ,
55
+ 'index(tree, key)'
56
+ )
57
+
58
+ instance = new Index ( tree , keyFn )
59
+
60
+ t . deepEqual (
61
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
62
+ [ true , [ node , alt ] ] ,
63
+ 'new Index(tree, key)'
64
+ )
65
+
66
+ instance = index ( tree , filter , 'id' )
67
+
68
+ t . deepEqual (
69
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
70
+ [ true , [ node ] ] ,
71
+ 'index(tree, filter, key)'
72
+ )
73
+
74
+ instance = new Index ( tree , filter , keyFn )
75
+
76
+ t . deepEqual (
77
+ [ instance instanceof Index , instance . get ( 1 ) ] ,
78
+ [ true , [ node ] ] ,
79
+ 'new Index(tree, filter, key)'
80
+ )
81
+
82
+ t . end ( )
83
+
84
+ function keyFn ( node ) {
85
+ return node . id
86
+ }
87
+
88
+ function filter ( node ) {
89
+ return node . type === 'a'
90
+ }
91
+ } )
92
+
8
93
test ( 'index.add' , function ( t ) {
9
94
var ast = u ( 'root' , [ u ( 'node' , { word : 'foo' } ) , u ( 'node' , { word : 'bar' } ) ] )
10
95
var extraNode = u ( 'node' , { word : 'foo' } )
0 commit comments