UNPKG

hyperkv

Version:

p2p key/value store over a [hyperlog][1] using a [multi-value register conflict strategy][2]

34 lines (32 loc) 836 B
var test = require('tape') var hyperkv = require('../') var memdb = require('memdb') var hyperlog = require('hyperlog') var sub = require('subleveldown') test('kv', function (t) { t.plan(9) var db = memdb() var kv = hyperkv({ log: hyperlog(sub(db, 'log'), { valueEncoding: 'json' }), db: sub(db, 'kv') }) kv.on('put', function (key, value, node) { t.equal(key, 'A') t.equal(value, 555) t.equal(node.seq, 1) }) kv.on('update', function (key, value, node) { t.equal(key, 'A') t.equal(value, 555) t.equal(node.seq, 1) }) kv.put('A', 555, function (err, node) { t.ifError(err) kv.get('A', function (err, values) { t.ifError(err) var expected = {} expected[node.key] = { value: 555 } t.deepEqual(values, expected, 'expected values for key A') }) }) })