1 | chai = require 'chai'
|
2 | assert = chai.assert
|
3 | should = chai.should()
|
4 | ReadStream = require '../lib/read-stream'
|
5 | WriteStream = require '../lib/write-stream'
|
6 | consts = require '../lib/consts'
|
7 | Memdown = require 'memdown-sync'
|
8 |
|
9 |
|
10 | FILTER_INCLUDED = consts.FILTER_INCLUDED
|
11 | FILTER_EXCLUDED = consts.FILTER_EXCLUDED
|
12 | FILTER_STOPPED = consts.FILTER_STOPPED
|
13 |
|
14 | allData = {}
|
15 | for k in [0..100]
|
16 | allData[k] = Math.random().toString()
|
17 |
|
18 | initTestDB = (location)->
|
19 | db = Memdown(location)
|
20 | db.open()
|
21 | db
|
22 |
|
23 | describe "WriteStream", ->
|
24 | db = initTestDB()
|
25 | describe ".create", ->
|
26 | it "should create a WriteStream via db argument", ->
|
27 | stream = WriteStream(db)
|
28 | should.exist stream, "stream"
|
29 | stream.should.be.instanceOf WriteStream
|
30 | should.exist stream.db, "db should be exists"
|
31 | it "should create a WriteStream via options.db", ->
|
32 | stream = WriteStream(null, {db:db})
|
33 | should.exist stream
|
34 | stream.should.be.instanceOf WriteStream
|
35 | should.exist stream.db, "db should be exists"
|
36 | describe ".write", ->
|
37 | it "should write data to database", (done)->
|
38 | ws = WriteStream(db)
|
39 | ws.on "finish", ()->
|
40 | for k,v of allData
|
41 | value = db.getSync(k)
|
42 | assert.equal value, v
|
43 | done()
|
44 | .on "error", (err)->
|
45 | done(err)
|
46 | for k,v of allData
|
47 | ws.write
|
48 | key: k
|
49 | value: v
|
50 | ws.end()
|
51 | it "should pipe to database", (done)->
|
52 | db2 = initTestDB("DB2")
|
53 | rs = ReadStream(db)
|
54 | ws = WriteStream(db2)
|
55 | ws.on "finish", ->
|
56 | for k,v of allData
|
57 | value = db2.getSync(k)
|
58 | assert.equal value, v
|
59 | done()
|
60 | .on "error", (err)->
|
61 | done(err)
|
62 | rs.pipe ws
|