Files: 8c69b0f11212bb2c638df784054352a8f974a63b / tests / index.js
2705 bytesRaw
1 | const tape = require('tape') |
2 | const IPFS = require('ipfs') |
3 | const RadixTree = require('../') |
4 | |
5 | // start ipfs |
6 | const node = new IPFS({ |
7 | start: false |
8 | }) |
9 | |
10 | node.on('ready', () => { |
11 | tape('set and get', async t => { |
12 | const tree = new RadixTree({ |
13 | dag: node.dag |
14 | }) |
15 | try { |
16 | await tree.set('test', 'cat') |
17 | let val = await tree.get('test') |
18 | t.equals(val, 'cat') |
19 | await tree.set('te', 'blop') |
20 | val = await tree.get('test') |
21 | t.equals(val, 'cat') |
22 | |
23 | val = await tree.get('te') |
24 | t.equals(val, 'blop') |
25 | |
26 | await tree.set('rad', 'cat2') |
27 | |
28 | val = await tree.get('rad') |
29 | t.equals(val, 'cat2') |
30 | |
31 | await tree.set('test', 'cat111') |
32 | val = await tree.get('test') |
33 | t.equals(val, 'cat111') |
34 | } catch (e) { |
35 | console.log(e) |
36 | } |
37 | t.end() |
38 | }) |
39 | |
40 | tape('branch nodes', async t => { |
41 | const tree = new RadixTree({ |
42 | dag: node.dag |
43 | }) |
44 | try { |
45 | let key0 = new RadixTree.ArrayConstructor([1, 1, 0, 0]) |
46 | await tree.set(key0, 'cat') |
47 | let key1 = new RadixTree.ArrayConstructor([0, 1, 0, 1]) |
48 | await tree.set(key1, 'cat2') |
49 | let val = await tree.get(key0) |
50 | t.equals(val, 'cat') |
51 | |
52 | val = await tree.get(key1) |
53 | t.equals(val, 'cat2') |
54 | |
55 | let key3 = new RadixTree.ArrayConstructor([0, 1, 0, 1, 1]) |
56 | await tree.set(key3, 'test') |
57 | val = await tree.get(key3) |
58 | |
59 | t.equals(val, 'test') |
60 | |
61 | let key4 = new RadixTree.ArrayConstructor([0, 1, 0, 0, 0]) |
62 | await tree.set(key4, 'dog') |
63 | val = await tree.get(key4) |
64 | t.equals(val, 'dog') |
65 | } catch (e) { |
66 | console.log(e) |
67 | } |
68 | t.end() |
69 | }) |
70 | |
71 | tape('delete', async t => { |
72 | const tree = new RadixTree({ |
73 | dag: node.dag |
74 | }) |
75 | try { |
76 | await tree.set('test', 'cat') |
77 | await tree.set('ter', 'cat3') |
78 | await tree.delete('te') |
79 | await tree.delete('test') |
80 | await tree.delete('ter') |
81 | t.equals(tree.root['/'], null) |
82 | |
83 | // tests delete midle branchs |
84 | await tree.set('test', 'cat') |
85 | await tree.set('te', 'cat2') |
86 | await tree.set('ter', 'cat3') |
87 | await tree.delete('te') |
88 | let val = await tree.get('test') |
89 | t.equals(val, 'cat') |
90 | |
91 | // tests delete end branchs |
92 | await tree.set('te', 'cat2') |
93 | await tree.delete('ter') |
94 | await tree.delete('te') |
95 | await tree.delete('test') |
96 | t.equals(tree.root['/'], null) |
97 | } catch (e) { |
98 | console.log(e) |
99 | } |
100 | t.end() |
101 | }) |
102 | |
103 | tape('large values', async t => { |
104 | const tree = new RadixTree({ |
105 | dag: node.dag |
106 | }) |
107 | const saved = new Buffer(33).fill(1) |
108 | await tree.set('test', saved) |
109 | const value = await tree.get('test') |
110 | t.equals(value.toString(), saved.toString()) |
111 | t.end() |
112 | }) |
113 | }) |
114 |
Built with git-ssb-web