tests/index.jsView |
---|
1 | 1 … | const tape = require('tape') |
| 2 … | +const crypto = require('crypto') |
2 | 3 … | const IPFS = require('ipfs') |
3 | 4 … | const RadixTree = require('../') |
4 | 5 … | |
5 | 6 … | |
11 | 12 … | tape('set and get', async t => { |
12 | 13 … | let tree = new RadixTree({ |
13 | 14 … | dag: node.dag |
14 | 15 … | }) |
| 16 … | + |
15 | 17 … | await tree.set('test', 'cat') |
16 | 18 … | let val = await tree.get('test') |
17 | 19 … | t.equals(val, 'cat') |
18 | 20 … | await tree.set('te', 'blop') |
30 | 32 … | await tree.set('test', 'cat111') |
31 | 33 … | val = await tree.get('test') |
32 | 34 … | t.equals(val, 'cat111') |
33 | 35 … | |
34 | | - const stateRoot = await tree.flush() |
| 36 … | + const stateRoot = await tree.createMerkleRoot() |
35 | 37 … | |
36 | 38 … | |
37 | 39 … | tree = new RadixTree({ |
38 | 40 … | dag: node.dag, |
46 | 48 … | t.equals(val, 'cat2') |
47 | 49 … | |
48 | 50 … | val = await tree.get('test') |
49 | 51 … | t.equals(val, 'cat111') |
50 | | - console.log(JSON.stringify(tree.root, null, 2)) |
| 52 … | + |
51 | 53 … | |
52 | 54 … | t.end() |
53 | 55 … | }) |
54 | 56 … | |
75 | 77 … | |
76 | 78 … | let key4 = new RadixTree.ArrayConstructor([0, 1, 0, 0, 0]) |
77 | 79 … | await tree.set(key4, 'dog') |
78 | 80 … | val = await tree.get(key4) |
79 | | - t.equals(val, 'dog') |
| 81 … | + |
| 82 … | + let key5 = new RadixTree.ArrayConstructor([0, 1, 1, 0, 0]) |
| 83 … | + await tree.set(key5, 'dog2') |
| 84 … | + val = await tree.get(key5) |
| 85 … | + t.equals(val, 'dog2') |
| 86 … | + |
| 87 … | + await tree.delete(key0) |
| 88 … | + |
| 89 … | + console.log(JSON.stringify(tree.root, null, 2)) |
| 90 … | + val = await tree.get(key5) |
| 91 … | + t.equals(val, 'dog2') |
80 | 92 … | t.end() |
81 | 93 … | }) |
82 | 94 … | |
83 | 95 … | tape('delete', async t => { |
89 | 101 … | await tree.set('ter', 'cat3') |
90 | 102 … | await tree.delete('te') |
91 | 103 … | await tree.delete('test') |
92 | 104 … | await tree.delete('ter') |
93 | | - t.equals(tree.root['/'], null) |
| 105 … | + t.equals(tree.root['/'], undefined) |
94 | 106 … | |
95 | 107 … | |
96 | 108 … | await tree.set('test', 'cat') |
97 | 109 … | await tree.set('te', 'cat2') |
104 | 116 … | await tree.set('te', 'cat2') |
105 | 117 … | await tree.delete('ter') |
106 | 118 … | await tree.delete('te') |
107 | 119 … | await tree.delete('test') |
108 | | - t.equals(tree.root['/'], null) |
| 120 … | + t.equals(tree.root['/'], undefined) |
109 | 121 … | } catch (e) { |
110 | 122 … | console.log(e) |
111 | 123 … | } |
112 | 124 … | t.end() |
121 | 133 … | const value = await tree.get('test') |
122 | 134 … | t.equals(value.toString(), saved.toString()) |
123 | 135 … | t.end() |
124 | 136 … | }) |
| 137 … | + |
| 138 … | + tape('falures', async t => { |
| 139 … | + const tree = new RadixTree({ |
| 140 … | + dag: node.dag |
| 141 … | + }) |
| 142 … | + const key = crypto.createHash('sha256').update((0).toString()).digest().slice(0, 20) |
| 143 … | + await tree.set(key, 0) |
| 144 … | + const value = await tree.get(key) |
| 145 … | + t.equals(value, 0) |
| 146 … | + |
| 147 … | + t.end() |
| 148 … | + }) |
125 | 149 … | }) |