UNPKG

1.59 kBtext/coffeescriptView Raw
1e = require 'expect.js'
2fs = require 'fs'
3Stream = require '../lib/stream'
4
5mockPath = "#{__dirname}/mock"
6filePath = "#{mockPath}/stream.log"
7
8describe 'Stream', ->
9 before (done)->
10 fs.mkdirSync mockPath
11 done()
12
13 beforeEach (done)->
14 fs.writeFileSync filePath, '', 'utf-8'
15 done()
16
17 afterEach (done)->
18 fs.writeFileSync filePath, '', 'utf-8'
19 done()
20
21 after (done)->
22 fs.unlinkSync filePath
23 fs.rmdirSync mockPath
24 done()
25
26 it 'write', (done)->
27 stream = Stream
28 duration : 100
29 filePath : filePath
30 stream.write 'msg\n'
31 stream.write 'msg\n'
32 setTimeout ->
33 str = fs.readFileSync filePath, 'utf-8'
34 e(str).to.be 'msg\nmsg\n'
35 e(stream._buffer.length).to.be 0
36 stream.end()
37 done()
38 , 110
39
40 it 'write on buffer over', (done)->
41 stream = Stream
42 duration : 100
43 bufferLength : 100
44 filePath : filePath
45 result = []
46 for i in [0...100]
47 result.push 'msg\n'
48 stream.write 'msg\n'
49 str = fs.readFileSync filePath, 'utf-8'
50 e(str).to.be ''
51 result.push 'msg\n'
52 stream.write 'msg\n'
53 setTimeout ->
54 str = fs.readFileSync filePath, 'utf-8'
55 e(str).to.be result.join ''
56 e(stream._buffer.length).to.be 0
57 stream.end()
58 done()
59 , 10
60
61 it 'end', (done)->
62 stream = Stream
63 duration : 100
64 filePath : filePath
65 stream.write 'msg\n'
66 setTimeout ->
67 stream.end()
68 str = fs.readFileSync filePath, 'utf-8'
69 e(str).to.be 'msg\n'
70 e(stream._buffer.length).to.be 0
71 done()
72 , 50