Fix actions/tour
This commit is contained in:
64
node_modules/abstract-level/test/encoding-decode-error-test.js
generated
vendored
Normal file
64
node_modules/abstract-level/test/encoding-decode-error-test.js
generated
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
'use strict'
|
||||
|
||||
let db
|
||||
let keySequence = 0
|
||||
|
||||
const testKey = () => 'test' + (++keySequence)
|
||||
|
||||
exports.all = function (test, testCommon) {
|
||||
test('setup', async function (t) {
|
||||
db = testCommon.factory()
|
||||
return db.open()
|
||||
})
|
||||
|
||||
// NOTE: adapted from encoding-down
|
||||
test('get() and getMany() forward decode error', function (t) {
|
||||
const key = testKey()
|
||||
const valueEncoding = {
|
||||
encode: (v) => v,
|
||||
decode: (v) => { throw new Error('decode error xyz') },
|
||||
format: 'utf8'
|
||||
}
|
||||
|
||||
db.put(key, 'bar', { valueEncoding }, function (err) {
|
||||
t.ifError(err, 'no put() error')
|
||||
|
||||
db.get(key, { valueEncoding }, function (err, value) {
|
||||
t.is(err && err.code, 'LEVEL_DECODE_ERROR')
|
||||
t.is(err && err.cause && err.cause.message, 'decode error xyz')
|
||||
t.is(value, undefined)
|
||||
|
||||
db.getMany(['other-key', key], { valueEncoding }, function (err, values) {
|
||||
t.is(err && err.code, 'LEVEL_DECODE_ERROR')
|
||||
t.is(err && err.cause && err.cause.message, 'decode error xyz')
|
||||
t.is(values, undefined)
|
||||
t.end()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
// NOTE: adapted from encoding-down
|
||||
test('get() and getMany() yield encoding error if stored value is invalid', function (t) {
|
||||
const key = testKey()
|
||||
|
||||
db.put(key, 'this {} is [] not : json', { valueEncoding: 'utf8' }, function (err) {
|
||||
t.ifError(err, 'no put() error')
|
||||
|
||||
db.get(key, { valueEncoding: 'json' }, function (err) {
|
||||
t.is(err && err.code, 'LEVEL_DECODE_ERROR')
|
||||
t.is(err && err.cause.name, 'SyntaxError') // From JSON.parse()
|
||||
|
||||
db.getMany(['other-key', key], { valueEncoding: 'json' }, function (err) {
|
||||
t.is(err && err.code, 'LEVEL_DECODE_ERROR')
|
||||
t.is(err && err.cause.name, 'SyntaxError') // From JSON.parse()
|
||||
t.end()
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
test('teardown', async function (t) {
|
||||
return db.close()
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user