akv
Version:
A simple key value store using single json file
64 lines (49 loc) • 1.38 kB
JavaScript
/**
* Test case for akv.
* Runs with mocha.
*/
const AKV = require('../lib/akv.js')
const assert = require('assert')
const asleep = require('asleep')
const fs = require('fs')
describe('akv', function () {
this.timeout(3000)
before(async () => {
})
after(async () => {
})
it('Akv', async () => {
let filename = `${__dirname}/../tmp/testing-akv/akv.json`
let akv = new AKV(filename, {interval: 100})
await akv.touch()
assert.ok(fs.existsSync(filename))
await akv.destroy()
assert.ok(!fs.existsSync(filename))
{
let {storage} = akv
await storage.write({foo: 'baz'})
let data = await storage.read()
assert.deepEqual(data, {foo: 'baz'})
assert.ok(storage.needsFlush)
await asleep(300)
assert.ok(!storage.needsFlush)
}
for (let i = 0; i < 5; i++) {
await akv.set('index', String(i))
let index = await akv.get('index')
assert.equal(index, String(i))
}
for (let i = 0; i < 100; i++) {
akv.set('index', String(i))
akv.get('index').then((index) => {
// console.log('index', index)
})
}
assert.equal(await akv.get('index'), '99')
assert.deepEqual(await akv.all(), await akv.all())
assert.deepEqual(await akv.keys(), await akv.keys())
await akv.commit()
})
})
/* global describe, before, after, it */