2023-10-03 11:14:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
var fs = require ('fs')
|
|
|
|
, join = require('path').join
|
|
|
|
, file = join(__dirname, 'fixtures','error.json')
|
|
|
|
, JSONStream = require('../')
|
|
|
|
, it = require('it-is')
|
|
|
|
|
|
|
|
var expected = JSON.parse(fs.readFileSync(file))
|
|
|
|
, parser = JSONStream.parse(['rows'])
|
|
|
|
, called = 0
|
|
|
|
, headerCalled = 0
|
|
|
|
, footerCalled = 0
|
|
|
|
, ended = false
|
|
|
|
, parsed = []
|
|
|
|
|
|
|
|
fs.createReadStream(file).pipe(parser)
|
|
|
|
|
|
|
|
parser.on('header', function (data) {
|
|
|
|
headerCalled ++
|
|
|
|
it(data).deepEqual({
|
|
|
|
error: 'error_code',
|
|
|
|
message: 'this is an error message'
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
parser.on('footer', function (data) {
|
|
|
|
footerCalled ++
|
|
|
|
})
|
|
|
|
|
|
|
|
parser.on('data', function (data) {
|
|
|
|
called ++
|
|
|
|
parsed.push(data)
|
|
|
|
})
|
|
|
|
|
|
|
|
parser.on('end', function () {
|
|
|
|
ended = true
|
|
|
|
})
|
|
|
|
|
|
|
|
process.on('exit', function () {
|
|
|
|
it(called).equal(0)
|
|
|
|
it(headerCalled).equal(1)
|
|
|
|
it(footerCalled).equal(0)
|
|
|
|
console.error('PASSED')
|
|
|
|
})
|