You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.2 KiB
84 lines
2.2 KiB
4 years ago
|
var concat = require('level-concat-iterator')
|
||
|
var db
|
||
|
|
||
|
exports.setUp = function (test, testCommon) {
|
||
|
test('setUp common', testCommon.setUp)
|
||
|
test('setUp db', function (t) {
|
||
|
db = testCommon.factory()
|
||
|
db.open(t.end.bind(t))
|
||
|
})
|
||
|
}
|
||
|
|
||
|
exports.args = function (test, testCommon) {
|
||
|
test('test argument-less clear() throws', function (t) {
|
||
|
t.throws(
|
||
|
db.clear.bind(db),
|
||
|
/Error: clear\(\) requires a callback argument/,
|
||
|
'no-arg clear() throws'
|
||
|
)
|
||
|
t.end()
|
||
|
})
|
||
|
}
|
||
|
|
||
|
exports.clear = function (test, testCommon) {
|
||
|
makeTest('string', ['a', 'b'])
|
||
|
|
||
|
if (testCommon.bufferKeys) {
|
||
|
makeTest('buffer', [Buffer.from('a'), Buffer.from('b')])
|
||
|
makeTest('mixed', [Buffer.from('a'), 'b'])
|
||
|
|
||
|
// These keys would be equal when compared as utf8 strings
|
||
|
makeTest('non-utf8 buffer', [Buffer.from('80', 'hex'), Buffer.from('c0', 'hex')])
|
||
|
}
|
||
|
|
||
|
function makeTest (type, keys) {
|
||
|
test('test simple clear() on ' + type + ' keys', function (t) {
|
||
|
t.plan(8)
|
||
|
|
||
|
var db = testCommon.factory()
|
||
|
var ops = keys.map(function (key) {
|
||
|
return { type: 'put', key: key, value: 'foo' }
|
||
|
})
|
||
|
|
||
|
db.open(function (err) {
|
||
|
t.ifError(err, 'no open error')
|
||
|
|
||
|
db.batch(ops, function (err) {
|
||
|
t.ifError(err, 'no batch error')
|
||
|
|
||
|
concat(db.iterator(), function (err, entries) {
|
||
|
t.ifError(err, 'no concat error')
|
||
|
t.is(entries.length, keys.length, 'has entries')
|
||
|
|
||
|
db.clear(function (err) {
|
||
|
t.ifError(err, 'no clear error')
|
||
|
|
||
|
concat(db.iterator(), function (err, entries) {
|
||
|
t.ifError(err, 'no concat error')
|
||
|
t.is(entries.length, 0, 'has no entries')
|
||
|
|
||
|
db.close(function (err) {
|
||
|
t.ifError(err, 'no close error')
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
exports.tearDown = function (test, testCommon) {
|
||
|
test('tearDown', function (t) {
|
||
|
db.close(testCommon.tearDown.bind(null, t))
|
||
|
})
|
||
|
}
|
||
|
|
||
|
exports.all = function (test, testCommon) {
|
||
|
exports.setUp(test, testCommon)
|
||
|
exports.args(test, testCommon)
|
||
|
exports.clear(test, testCommon)
|
||
|
exports.tearDown(test, testCommon)
|
||
|
}
|