Security update for permissions_by_term
[yaffs-website] / node_modules / linerstream / test / split-test.js
1 var sinon = require('sinon')
2 var fs = require('fs')
3 var path = require('path')
4 var os = require('os')
5 var expect = require('chai').expect
6 var Linerstream = require('../')
7
8 describe('Split test', function() {
9   describe('given text with line breaks', function() {
10     it('should split on new lines', function(done) {
11       var fixturePath = path.join(__dirname, 'data/newlines-big.txt')
12       var inputStream = fs.createReadStream(fixturePath)
13       var splitter = new Linerstream()
14       expect(splitter).to.exist
15       var output = inputStream.pipe(splitter)
16       var validateLineSpy = sinon.spy(validateLine)
17
18       output.on('finish', finishHandler)
19       output.on('readable', readableHandler)
20
21       function validateLine(line) {
22         expect(line).to.exist
23         expect(line).to.be.a('string')
24         expect(line).to.not.be.empty
25         expect(line).to.not.match(/\n|\r/)
26       }
27
28       function readableHandler() {
29         var data
30         while (true) {
31           data = output.read()
32           if (!data) {
33             break
34           }
35           validateLineSpy(data)
36
37         }
38       }
39
40       function finishHandler() {
41         expect(validateLineSpy.callCount).to.be.above(1)
42         done()
43       }
44
45     })
46   })
47 })