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

Commit b4af053

Browse files
authored
Test seek() integration (#661)
1 parent 9318f99 commit b4af053

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

test/iterator-test.js

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ var memdown = require('memdown')
22
var assert = require('referee').assert
33
var refute = require('referee').refute
44
var buster = require('bustermove')
5+
var encode = require('encoding-down')
56
var levelup = require('../lib/levelup')
67
var common = require('./common')
78

@@ -32,3 +33,76 @@ buster.testCase('iterator', {
3233
})
3334
}
3435
})
36+
37+
buster.testCase('iterator#seek()', {
38+
setUp: function (done) {
39+
this.mem = memdown()
40+
this.mem.open(function () {})
41+
this.mem.batch([
42+
{ type: 'put', key: '"a"', value: 'a' },
43+
{ type: 'put', key: '"b"', value: 'b' }
44+
], function () {})
45+
this.mem.close(done)
46+
},
47+
tearDown: function (done) {
48+
this.db.close(done)
49+
},
50+
51+
'without encoding, without deferred-open': function (done) {
52+
var db = this.db = levelup(this.mem)
53+
54+
db.open(function (err) {
55+
refute(err)
56+
57+
var it = db.iterator({ keyAsBuffer: false })
58+
59+
it.seek('"b"')
60+
it.next(function (err, key, value) {
61+
refute(err)
62+
assert.equals(key, '"b"')
63+
it.end(done)
64+
})
65+
})
66+
},
67+
68+
'without encoding, with deferred-open': function (done) {
69+
var db = this.db = levelup(this.mem)
70+
var it = db.iterator({ keyAsBuffer: false })
71+
72+
it.seek('"b"')
73+
it.next(function (err, key, value) {
74+
refute(err)
75+
assert.equals(key, '"b"')
76+
it.end(done)
77+
})
78+
},
79+
80+
'with encoding, with deferred-open': function (done) {
81+
var db = this.db = levelup(encode(this.mem, { keyEncoding: 'json' }))
82+
var it = db.iterator()
83+
84+
it.seek('b')
85+
it.next(function (err, key, value) {
86+
refute(err)
87+
assert.equals(key, 'b')
88+
it.end(done)
89+
})
90+
},
91+
92+
'with encoding, without deferred-open': function (done) {
93+
var db = this.db = levelup(encode(this.mem, { keyEncoding: 'json' }))
94+
95+
db.open(function (err) {
96+
refute(err)
97+
98+
var it = db.iterator()
99+
100+
it.seek('b')
101+
it.next(function (err, key, value) {
102+
refute(err)
103+
assert.equals(key, 'b')
104+
it.end(done)
105+
})
106+
})
107+
}
108+
})

0 commit comments

Comments
 (0)