Skip to content
This repository was archived by the owner on Dec 1, 2024. It is now read-only.

Commit 0cce93c

Browse files
committed
Rewrite open-patchsafe-test
1 parent 522edff commit 0cce93c

File tree

2 files changed

+30
-37
lines changed

2 files changed

+30
-37
lines changed

test/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ if (testCommon.streams) require('./key-value-streams-test')(test, testCommon)
3535
require('./maybe-error-test')(test, testCommon)
3636
require('./no-encoding-test')(test, testCommon)
3737
require('./null-and-undefined-test')(test, testCommon)
38-
require('./open-patchsafe-test')
38+
if (testCommon.deferredOpen) require('./open-patchsafe-test')(test, testCommon)
3939
if (testCommon.streams) require('./read-stream-test')
4040
if (testCommon.snapshots) require('./snapshot-test')(test, testCommon)
4141
require('./iterator-test')(test, testCommon)

test/open-patchsafe-test.js

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,5 @@
1-
var levelup = require('../lib/levelup.js')
2-
var memdown = require('memdown')
3-
var common = require('./common')
4-
var assert = require('referee').assert
5-
var refute = require('referee').refute
6-
var buster = require('bustermove')
7-
8-
function test (fun) {
9-
return function (done) {
10-
// 1) open database without callback, opens in next tick
11-
var db = levelup(memdown())
12-
13-
this.closeableDatabases.push(db)
14-
assert.isObject(db)
15-
16-
fun(db, done)
17-
// we should still be in a state of limbo down here, not opened or closed, but 'new'
18-
refute(db.isOpen())
19-
refute(db.isClosed())
20-
}
21-
}
22-
23-
buster.testCase('Deferred open() is patch-safe', {
24-
setUp: common.commonSetUp,
25-
tearDown: common.commonTearDown,
26-
27-
'put() on pre-opened database': test(function (db, done) {
1+
module.exports = function (test, testCommon) {
2+
test('deferred open() is patch-safe: put() on new database', makeTest(function (t, db, done) {
283
var put = db.put
294
var called = 0
305

@@ -34,11 +9,12 @@ buster.testCase('Deferred open() is patch-safe', {
349
}
3510

3611
db.put('key', 'VALUE', function () {
37-
assert.equals(called, 1)
12+
t.is(called, 1)
3813
done()
3914
})
40-
}),
41-
'del() on pre-opened database': test(function (db, done) {
15+
}))
16+
17+
test('deferred open() is patch-safe: del() on new database', makeTest(function (t, db, done) {
4218
var del = db.del
4319
var called = 0
4420

@@ -48,11 +24,12 @@ buster.testCase('Deferred open() is patch-safe', {
4824
}
4925

5026
db.del('key', function () {
51-
assert.equals(called, 1)
27+
t.is(called, 1)
5228
done()
5329
})
54-
}),
55-
'batch() on pre-opened database': test(function (db, done) {
30+
}))
31+
32+
test('deferred open() is patch-safe: batch() on new database', makeTest(function (t, db, done) {
5633
var batch = db.batch
5734
var called = 0
5835

@@ -65,8 +42,24 @@ buster.testCase('Deferred open() is patch-safe', {
6542
{ key: 'key', value: 'v', type: 'put' },
6643
{ key: 'key2', value: 'v2', type: 'put' }
6744
], function () {
68-
assert.equals(called, 1)
45+
t.is(called, 1)
6946
done()
7047
})
71-
})
72-
})
48+
}))
49+
50+
function makeTest (fn) {
51+
return function (t) {
52+
// 1) open database without callback, opens in next tick
53+
var db = testCommon.factory()
54+
55+
fn(t, db, function (err) {
56+
t.ifError(err, 'no test error')
57+
db.close(t.end.bind(t))
58+
})
59+
60+
// we should still be in a state of limbo down here, not opened or closed, but 'new'
61+
t.is(db.isOpen(), false)
62+
t.is(db.isClosed(), false)
63+
}
64+
}
65+
}

0 commit comments

Comments
 (0)