UNPKG

1.7 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3/*
4
5 Check if adding the separator character in the name screws things up.
6
7*/
8
9var sublevel = require('subleveldown');
10var memdb = require('memdb');
11
12var rawdb = memdb();
13var db = sublevel(rawdb, 'd', {valueEncoding: 'json'});
14var idb = sublevel(rawdb, 'i');
15var treeIndexer = require('../index.js');
16
17var tree = treeIndexer(db, idb, {
18 sep: '.' // set separator to a common printable character
19});
20
21function cleanup() {
22 console.log("done");
23}
24
25
26function base(cb) {
27 tree.put('1', {name: "foo"}, function(err) {
28 if(err) return cb(err);
29
30 // here's where we do the bad thing
31 tree.put('2', {parentKey: '1', name: "bar.lol"}, function(err) {
32 if(err) return cb(err);
33
34 tree.put('3', {parentKey: '2', name: "baz"}, function(err) {
35 if(err) return cb(err);
36
37 tree.put('4', {parentKey: '1', name: "cat"}, function(err) {
38 if(err) return cb(err);
39
40 cb(err, db, tree, cleanup);
41
42 });
43 });
44 });
45 })
46};
47
48// base() creates a leveldb and a level-tree-index with some test data
49// the callback deletes the database
50base(function(err, db, tree, cb) {
51 if(err) return cb(err);
52
53 // get children of foo
54 tree.children('foo', function(err, children) {
55 if(err) return cb(err);
56
57 console.log('before move:', children);
58
59 tree.put('2', {parentKey: '1', name: "bar.moved"}, function(err) {
60 if(err) return cb(err);
61
62 // get children of foo
63 tree.children('foo', function(err, children) {
64 if(err) return cb(err);
65
66 console.log('after move:', children);
67
68 cb();
69 });
70
71 });
72
73 });
74})
75