@@ -2,6 +2,7 @@ var memdown = require('memdown')
22var assert = require ( 'referee' ) . assert
33var refute = require ( 'referee' ) . refute
44var buster = require ( 'bustermove' )
5+ var encode = require ( 'encoding-down' )
56var levelup = require ( '../lib/levelup' )
67var 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