This repository was archived by the owner on Mar 23, 2023. It is now read-only.
File tree 4 files changed +57
-13
lines changed
4 files changed +57
-13
lines changed Original file line number Diff line number Diff line change @@ -37,3 +37,4 @@ node_modules
37
37
lib
38
38
dist
39
39
test /test-repo /datastore
40
+ init-default
Original file line number Diff line number Diff line change 48
48
"pull-stream" : " ^3.6.1"
49
49
},
50
50
"devDependencies" : {
51
- "aegir" : " ^12 .1.3 " ,
52
- "async" : " ^2.5 .0" ,
51
+ "aegir" : " ^13 .1.0 " ,
52
+ "async" : " ^2.6 .0" ,
53
53
"chai" : " ^4.1.2" ,
54
- "cids" : " ~0.5.2 " ,
54
+ "cids" : " ~0.5.3 " ,
55
55
"dirty-chai" : " ^2.0.1" ,
56
56
"flow-bin" : " ^0.58.0" ,
57
57
"memdown" : " ^1.4.1" ,
Original file line number Diff line number Diff line change @@ -24,18 +24,23 @@ class LevelDatastore {
24
24
/* :: db: levelup */
25
25
26
26
constructor ( path /* : string */ , opts /* : ?LevelOptions */ ) {
27
- // Default to leveldown db
28
- const database = opts && opts . db ? opts . db : require ( 'leveldown' )
29
- delete opts . db
27
+ let database
28
+
29
+ if ( opts && opts . db ) {
30
+ database = opts . db
31
+ delete opts . db
32
+ } else {
33
+ // Default to leveldown db
34
+ database = require ( 'leveldown' )
35
+ }
30
36
31
37
this . db = levelup (
32
- database (
33
- path ,
34
- Object . assign ( { } , opts , {
35
- compression : false , // same default as go
36
- valueEncoding : 'binary'
37
- } )
38
- ) , ( err ) => {
38
+ database ( path ) ,
39
+ Object . assign ( { } , opts , {
40
+ compression : false , // same default as go
41
+ valueEncoding : 'binary'
42
+ } ) ,
43
+ ( err ) => {
39
44
// Prevent an uncaught exception error on duplicate locks
40
45
if ( err ) {
41
46
throw err
Original file line number Diff line number Diff line change 2
2
/* eslint-env mocha */
3
3
'use strict'
4
4
5
+ const chai = require ( 'chai' )
6
+ chai . use ( require ( 'dirty-chai' ) )
7
+ const expect = chai . expect
5
8
const memdown = require ( 'memdown' )
9
+ const LevelDown = require ( 'leveldown' )
6
10
7
11
const LevelStore = require ( '../src' )
8
12
9
13
describe ( 'LevelDatastore' , ( ) => {
14
+ describe ( 'initialization' , ( ) => {
15
+ it ( 'should default to a leveldown database' , ( done ) => {
16
+ const levelStore = new LevelStore ( 'init-default' )
17
+
18
+ levelStore . open ( ( err ) => {
19
+ expect ( err ) . to . not . exist ( )
20
+ expect ( levelStore . db . db instanceof LevelDown ) . to . equal ( true )
21
+ expect ( levelStore . db . options ) . to . include ( {
22
+ createIfMissing : true ,
23
+ errorIfExists : false
24
+ } )
25
+ done ( )
26
+ } )
27
+ } )
28
+
29
+ it ( 'should be able to override the database' , ( done ) => {
30
+ const levelStore = new LevelStore ( 'init-default' , {
31
+ db : memdown ,
32
+ createIfMissing : true ,
33
+ errorIfExists : true
34
+ } )
35
+
36
+ levelStore . open ( ( err ) => {
37
+ expect ( err ) . to . not . exist ( )
38
+ expect ( levelStore . db . db instanceof memdown ) . to . equal ( true )
39
+ expect ( levelStore . db . options ) . to . include ( {
40
+ createIfMissing : true ,
41
+ errorIfExists : true
42
+ } )
43
+ done ( )
44
+ } )
45
+ } )
46
+ } )
47
+
10
48
describe ( 'interface-datastore (memdown)' , ( ) => {
11
49
require ( 'interface-datastore/src/tests' ) ( {
12
50
setup ( callback ) {
You can’t perform that action at this time.
0 commit comments