1 | e = require 'expect.js'
|
2 | fs = require 'fs'
|
3 | Stream = require '../lib/stream'
|
4 |
|
5 | mockPath = "#{__dirname}/mock"
|
6 | filePath = "#{mockPath}/stream.log"
|
7 |
|
8 | describe '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 | filePath : filePath
|
29 | stream.write 'msg\n'
|
30 | stream.write 'msg\n'
|
31 | setTimeout ->
|
32 | str = fs.readFileSync filePath, 'utf-8'
|
33 | e(str).to.be 'msg\nmsg\n'
|
34 | e(stream._buffer.length).to.be 0
|
35 | stream.end()
|
36 | done()
|
37 | , 300
|
38 |
|
39 | it 'write on buffer over', (done)->
|
40 | stream = Stream
|
41 | bufferLength : 100
|
42 | filePath : filePath
|
43 | result = []
|
44 | for i in [0...100]
|
45 | result.push 'msg\n'
|
46 | stream.write 'msg\n'
|
47 | str = fs.readFileSync filePath, 'utf-8'
|
48 | e(str).to.be ''
|
49 | result.push 'msg\n'
|
50 | stream.write 'msg\n'
|
51 | setTimeout ->
|
52 | str = fs.readFileSync filePath, 'utf-8'
|
53 | e(str).to.be result.join ''
|
54 | e(stream._buffer.length).to.be 0
|
55 | stream.end()
|
56 | done()
|
57 | , 300
|
58 |
|
59 | it 'end', (done)->
|
60 | stream = Stream
|
61 | filePath : filePath
|
62 | stream.write 'msg\n'
|
63 | stream.end()
|
64 | setTimeout ->
|
65 | str = fs.readFileSync filePath, 'utf-8'
|
66 | e(str).to.be 'msg\n'
|
67 | e(stream._buffer.length).to.be 0
|
68 | done()
|
69 | , 200
|