forked from public/fvtt-cthulhu-eternal
Initial import with skill sheet working
This commit is contained in:
99
node_modules/abstract-level/test/iterator-snapshot-test.js
generated
vendored
Normal file
99
node_modules/abstract-level/test/iterator-snapshot-test.js
generated
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
'use strict'
|
||||
|
||||
exports.snapshot = function (test, testCommon) {
|
||||
function make (run) {
|
||||
return function (t) {
|
||||
const db = testCommon.factory()
|
||||
|
||||
db.open(function (err) {
|
||||
t.ifError(err, 'no open error')
|
||||
|
||||
db.put('z', 'from snapshot', function (err) {
|
||||
t.ifError(err, 'no put error')
|
||||
|
||||
// For this test it is important that we don't read eagerly.
|
||||
// NOTE: highWaterMarkBytes is not an abstract option, but
|
||||
// it is supported by classic-level and others. Also set the
|
||||
// old & equivalent leveldown highWaterMark option for compat.
|
||||
const it = db.iterator({ highWaterMarkBytes: 0, highWaterMark: 0 })
|
||||
|
||||
run(t, db, it, function end (err) {
|
||||
t.ifError(err, 'no run error')
|
||||
|
||||
it.close(function (err) {
|
||||
t.ifError(err, 'no iterator close error')
|
||||
db.close(t.end.bind(t))
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
test('delete key after snapshotting', make(function (t, db, it, end) {
|
||||
db.del('z', function (err) {
|
||||
t.ifError(err, 'no del error')
|
||||
|
||||
it.next(function (err, key, value) {
|
||||
t.ifError(err, 'no next error')
|
||||
t.ok(key, 'got a key')
|
||||
t.is(key.toString(), 'z', 'correct key')
|
||||
t.is(value.toString(), 'from snapshot', 'correct value')
|
||||
|
||||
end()
|
||||
})
|
||||
})
|
||||
}))
|
||||
|
||||
test('overwrite key after snapshotting', make(function (t, db, it, end) {
|
||||
db.put('z', 'not from snapshot', function (err) {
|
||||
t.ifError(err, 'no put error')
|
||||
|
||||
it.next(function (err, key, value) {
|
||||
t.ifError(err, 'no next error')
|
||||
t.ok(key, 'got a key')
|
||||
t.is(key.toString(), 'z', 'correct key')
|
||||
t.is(value.toString(), 'from snapshot', 'correct value')
|
||||
|
||||
end()
|
||||
})
|
||||
})
|
||||
}))
|
||||
|
||||
test('add key after snapshotting that sorts first', make(function (t, db, it, end) {
|
||||
db.put('a', 'not from snapshot', function (err) {
|
||||
t.ifError(err, 'no put error')
|
||||
|
||||
it.next(function (err, key, value) {
|
||||
t.ifError(err, 'no next error')
|
||||
|
||||
t.ok(key, 'got a key')
|
||||
t.is(key.toString(), 'z', 'correct key')
|
||||
t.is(value.toString(), 'from snapshot', 'correct value')
|
||||
|
||||
end()
|
||||
})
|
||||
})
|
||||
}))
|
||||
|
||||
// NOTE: adapted from memdown
|
||||
test('delete key after snapshotting, with more entries available', async function (t) {
|
||||
const db = testCommon.factory()
|
||||
await db.open()
|
||||
await Promise.all([db.put('a', 'A'), db.put('b', 'B'), db.put('c', 'C')])
|
||||
|
||||
const iterator = db.iterator({ gte: 'a' })
|
||||
t.same(await iterator.next(), ['a', 'A'])
|
||||
|
||||
await db.del('b')
|
||||
t.same(await iterator.next(), ['b', 'B'])
|
||||
t.same(await iterator.next(), ['c', 'C'])
|
||||
|
||||
await iterator.close()
|
||||
return db.close()
|
||||
})
|
||||
}
|
||||
|
||||
exports.all = function (test, testCommon) {
|
||||
exports.snapshot(test, testCommon)
|
||||
}
|
||||
Reference in New Issue
Block a user