UNPKG

1.96 kBJavaScriptView Raw
1var path = require('path')
2 , fs = !process.browser && require('fs')
3 , rimraf = !process.browser && require('rimraf')
4
5/*//let debug more easy.
6global.setImmediate = function(callback) {
7 //callback() //will raise max stack exceed error!
8}//*/
9
10var dbidx = 0
11
12 , location = function () {
13 return path.join(__dirname, '_leveldown_test_db_' + dbidx++)
14 }
15
16 , lastLocation = function () {
17 return path.join(__dirname, '_leveldown_test_db_' + dbidx)
18 }
19
20 , cleanup = function (callback) {
21 if (process.browser)
22 return callback()
23
24 fs.readdir(__dirname, function (err, list) {
25 if (err) return callback(err)
26
27 list = list.filter(function (f) {
28 return (/^_leveldown_test_db_/).test(f)
29 })
30
31 if (!list.length)
32 return callback()
33
34 var ret = 0
35
36 list.forEach(function (f) {
37 rimraf(path.join(__dirname, f), function (err) {
38 if (++ret == list.length)
39 callback()
40 })
41 })
42 })
43 }
44
45 , setUp = function (t) {
46 cleanup(function (err) {
47 t.error(err, 'cleanup returned an error')
48 t.end()
49 })
50 }
51
52 , tearDown = function (t) {
53 setUp(t) // same cleanup!
54 }
55
56 , collectEntries = function (iterator, callback) {
57 var data = []
58 , next = function () {
59 iterator.next(function (err, key, value) {
60 if (err) return callback(err)
61 if (!arguments.length) {
62 return iterator.end(function (err) {
63 callback(err, data)
64 })
65 }
66 data.push({ key: key, value: value })
67 setTimeout(next, 0)
68 })
69 }
70 next()
71 }
72
73module.exports = {
74 location : location
75 , cleanup : cleanup
76 , lastLocation : lastLocation
77 , setUp : setUp
78 , tearDown : tearDown
79 , collectEntries : collectEntries
80}