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
/* Copyright (c) 2012-2016 LevelUP contributors |
|
* See list at <https://github.com/level/levelup#contributing> |
|
* MIT License <https://github.com/level/levelup/blob/master/LICENSE.md> |
|
*/ |
|
|
|
var levelup = require('../lib/levelup.js') |
|
var async = require('async') |
|
var common = require('./common') |
|
|
|
var assert = require('referee').assert |
|
var refute = require('referee').refute |
|
var buster = require('bustermove') |
|
|
|
buster.testCase('approximateSize()', { |
|
'setUp': common.commonSetUp, |
|
'tearDown': common.commonTearDown, |
|
|
|
'approximateSize() is deprecated': function (done) { |
|
this.openTestDatabase(function (db) { |
|
var error = console.error |
|
console.error = function (str) { |
|
console.error = error |
|
assert(/deprecated/.test(str)) |
|
done() |
|
} |
|
db.approximateSize('a', 'z', function () {}) |
|
}) |
|
}, |
|
|
|
'approximateSize() works on empty database': function (done) { |
|
this.openTestDatabase(function (db) { |
|
db.approximateSize('a', 'z', function (err, size) { |
|
refute(err) // sanity |
|
assert.equals(size, 0) |
|
done() |
|
}) |
|
}) |
|
}, |
|
|
|
'approximateSize() work on none-empty database': function (done) { |
|
var location = common.nextLocation() |
|
var db |
|
|
|
async.series( |
|
[ |
|
function (callback) { |
|
this.openTestDatabase( |
|
location |
|
, function (_db) { |
|
db = _db |
|
callback() |
|
} |
|
) |
|
}.bind(this), |
|
function (callback) { |
|
var batch = [] |
|
var i = 0 |
|
|
|
for (; i < 10; ++i) { |
|
batch.push({ type: 'put', key: String(i), value: 'afoovalue' }) |
|
} |
|
db.batch(batch, { sync: true }, callback) |
|
}, |
|
function (callback) { |
|
// close db to make sure stuff gets written to disc |
|
db.close(callback) |
|
}, |
|
function (callback) { |
|
levelup(location, function (err, _db) { |
|
refute(err) |
|
db = _db |
|
callback() |
|
}) |
|
}, |
|
function (callback) { |
|
db.approximateSize('0', '99', function (err, size) { |
|
refute(err) // sanity |
|
refute.equals(size, 0) |
|
callback() |
|
}) |
|
} |
|
], done) |
|
} |
|
})
|
|
|