mirror of https://codeberg.org/pzp/pzp-db.git
68 lines
1.8 KiB
JavaScript
68 lines
1.8 KiB
JavaScript
const test = require('node:test')
|
|
const assert = require('node:assert')
|
|
const fs = require('node:fs')
|
|
const p = require('node:util').promisify
|
|
const Log = require('../../lib/log')
|
|
|
|
test('Log get() handles bad offset NaN', async function (t) {
|
|
const file = '/tmp/ppppp-db-log-test-bad-offset.log'
|
|
try {
|
|
fs.unlinkSync(file)
|
|
} catch (_) {}
|
|
const log = Log(file, { blockSize: 2 * 1024 })
|
|
|
|
const msg = Buffer.from('testing')
|
|
|
|
const offset1 = await p(log.append)(msg)
|
|
assert.equal(offset1, 0)
|
|
|
|
await assert.rejects(p(log.get)(NaN), (err) => {
|
|
assert.match(err.message, /Offset NaN is not a number/, err.message)
|
|
assert.equal(err.code, 'ERR_AAOL_INVALID_OFFSET')
|
|
return true
|
|
})
|
|
|
|
await p(log.close)()
|
|
})
|
|
|
|
test('Log get() handles bad offset -1', async function (t) {
|
|
const file = '/tmp/ppppp-db-log-test-bad-offset.log'
|
|
try {
|
|
fs.unlinkSync(file)
|
|
} catch (_) {}
|
|
const log = Log(file, { blockSize: 2 * 1024 })
|
|
|
|
const msg = Buffer.from('testing')
|
|
|
|
const offset1 = await p(log.append)(msg)
|
|
assert.equal(offset1, 0)
|
|
|
|
await assert.rejects(p(log.get)(-1), (err) => {
|
|
assert.match(err.message, /Offset -1 is negative/, err.message)
|
|
assert.equal(err.code, 'ERR_AAOL_INVALID_OFFSET')
|
|
return true
|
|
})
|
|
await p(log.close)()
|
|
})
|
|
|
|
test('Log get() handles bad offset out of bounds', async function (t) {
|
|
const file = '/tmp/ppppp-db-log-test-bad-offset.log'
|
|
try {
|
|
fs.unlinkSync(file)
|
|
} catch (_) {}
|
|
const log = Log(file, { blockSize: 2 * 1024 })
|
|
|
|
const msg = Buffer.from('testing')
|
|
|
|
const offset1 = await p(log.append)(msg)
|
|
assert.equal(offset1, 0)
|
|
|
|
await assert.rejects(p(log.get)(10240), (err) => {
|
|
assert.match(err.message, /Offset 10240 is beyond log size/, err.message)
|
|
assert.equal(err.code, 'ERR_AAOL_OFFSET_OUT_OF_BOUNDS')
|
|
return true
|
|
})
|
|
|
|
await p(log.close)()
|
|
})
|