UNPKG

1.75 kBtext/coffeescriptView Raw
1chai = require 'chai'
2assert = chai.assert
3should = chai.should()
4ReadStream = require '../lib/read-stream'
5WriteStream = require '../lib/write-stream'
6consts = require '../lib/consts'
7Memdown = require 'memdown-sync'
8
9
10FILTER_INCLUDED = consts.FILTER_INCLUDED
11FILTER_EXCLUDED = consts.FILTER_EXCLUDED
12FILTER_STOPPED = consts.FILTER_STOPPED
13
14allData = {}
15for k in [0..100]
16 allData[k] = Math.random().toString()
17
18initTestDB = (location)->
19 db = Memdown(location)
20 db.open()
21 db
22
23describe "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