You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
/* Copyright (c) 2012-2016 LevelUP contributors |
|
* See list at <https://github.com/level/levelup#contributing> |
|
* MIT License <https://github.com/level/levelup/blob/master/LICENSE.md> |
|
*/ |
|
|
|
var levelup = require('../lib/levelup.js') |
|
var assert = require('referee').assert |
|
var refute = require('referee').refute |
|
var buster = require('bustermove') |
|
var MemDOWN = require('memdown') |
|
|
|
require('./common') |
|
|
|
buster.testCase('LevelDOWN Substitution', { |
|
'test substitution of LevelDOWN with MemDOWN': function (done) { |
|
var md = new MemDOWN('foo') |
|
var db = levelup('/somewhere/not/writable/booya!', { db: function () { return md } }) |
|
var entries = [] |
|
var expected = [ |
|
{ key: 'a', value: 'A' }, |
|
{ key: 'b', value: 'B' }, |
|
{ key: 'c', value: 'C' }, |
|
{ key: 'd', value: 'D' }, |
|
{ key: 'e', value: 'E' }, |
|
{ key: 'f', value: 'F' }, |
|
{ key: 'i', value: 'I' } |
|
] |
|
|
|
db.put('f', 'F') |
|
db.put('h', 'H') |
|
db.put('i', 'I') |
|
db.put('a', 'A') |
|
db.put('c', 'C') |
|
db.put('e', 'E') |
|
db.del('g') |
|
db.batch([ |
|
{ type: 'put', key: 'd', value: 'D' }, |
|
{ type: 'del', key: 'h' }, |
|
{ type: 'put', key: 'b', value: 'B' } |
|
]) |
|
|
|
db.createReadStream() |
|
.on('data', function (data) { entries.push(data) }) |
|
.on('error', function (err) { refute(err, 'readStream emitted an error') }) |
|
.on('close', function () { |
|
assert.equals(entries, expected, 'correct entries') |
|
assert.equals( |
|
md._store['$foo'].keys, |
|
expected.map(function (e) { return e.key }), |
|
'memdown has the entries' |
|
) |
|
done() |
|
}) |
|
} |
|
})
|
|
|