forked from public/fvtt-cthulhu-eternal
Initial import with skill sheet working
This commit is contained in:
98
node_modules/abstract-level/test/self/deferred-chained-batch-test.js
generated
vendored
Normal file
98
node_modules/abstract-level/test/self/deferred-chained-batch-test.js
generated
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
'use strict'
|
||||
|
||||
const test = require('tape')
|
||||
const { mockLevel } = require('../util')
|
||||
const { DefaultChainedBatch } = require('../../lib/default-chained-batch')
|
||||
const identity = (v) => v
|
||||
|
||||
// NOTE: adapted from deferred-leveldown
|
||||
test('deferred chained batch encodes once', function (t) {
|
||||
t.plan(9)
|
||||
|
||||
let called = false
|
||||
|
||||
const keyEncoding = {
|
||||
format: 'utf8',
|
||||
encode (key) {
|
||||
t.is(called, false, 'not yet called')
|
||||
t.is(key, 'foo')
|
||||
return key.toUpperCase()
|
||||
},
|
||||
decode: identity
|
||||
}
|
||||
|
||||
const valueEncoding = {
|
||||
format: 'utf8',
|
||||
encode (value) {
|
||||
t.is(called, false, 'not yet called')
|
||||
t.is(value, 'bar')
|
||||
return value.toUpperCase()
|
||||
},
|
||||
decode: identity
|
||||
}
|
||||
|
||||
const db = mockLevel({
|
||||
_batch: function (array, options, callback) {
|
||||
called = true
|
||||
t.is(array[0] && array[0].key, 'FOO')
|
||||
t.is(array[0] && array[0].value, 'BAR')
|
||||
this.nextTick(callback)
|
||||
},
|
||||
_open: function (options, callback) {
|
||||
t.is(called, false, 'not yet called')
|
||||
this.nextTick(callback)
|
||||
}
|
||||
}, { encodings: { utf8: true } }, {
|
||||
keyEncoding,
|
||||
valueEncoding
|
||||
})
|
||||
|
||||
db.once('open', function () {
|
||||
t.is(called, true, 'called')
|
||||
})
|
||||
|
||||
db.batch().put('foo', 'bar').write(function (err) {
|
||||
t.ifError(err, 'no write() error')
|
||||
})
|
||||
})
|
||||
|
||||
test('deferred chained batch is closed upon failed open', function (t) {
|
||||
t.plan(6)
|
||||
|
||||
const db = mockLevel({
|
||||
_open (options, callback) {
|
||||
t.pass('opening')
|
||||
this.nextTick(callback, new Error('_open error'))
|
||||
},
|
||||
_batch () {
|
||||
t.fail('should not be called')
|
||||
}
|
||||
})
|
||||
|
||||
const batch = db.batch()
|
||||
t.ok(batch instanceof DefaultChainedBatch)
|
||||
|
||||
batch.put('foo', 'bar')
|
||||
batch.del('123')
|
||||
|
||||
batch.write(function (err) {
|
||||
t.is(err && err.code, 'LEVEL_BATCH_NOT_OPEN')
|
||||
|
||||
// Should account for userland code that ignores errors
|
||||
try {
|
||||
batch.put('beep', 'boop')
|
||||
} catch (err) {
|
||||
t.is(err && err.code, 'LEVEL_BATCH_NOT_OPEN')
|
||||
}
|
||||
|
||||
try {
|
||||
batch.del('456')
|
||||
} catch (err) {
|
||||
t.is(err && err.code, 'LEVEL_BATCH_NOT_OPEN')
|
||||
}
|
||||
|
||||
batch.write(function (err) {
|
||||
t.is(err && err.code, 'LEVEL_BATCH_NOT_OPEN')
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user