36 lines
770 B
JavaScript
36 lines
770 B
JavaScript
'use strict'
|
|
|
|
const { test } = require('tap')
|
|
const fs = require('fs')
|
|
const SonicBoom = require('../')
|
|
const { file } = require('./helper')
|
|
|
|
const MAX_WRITE = 16 * 1024
|
|
|
|
test('drain deadlock', (t) => {
|
|
t.plan(4)
|
|
|
|
const dest = file()
|
|
const stream = new SonicBoom({ dest, sync: false, minLength: 9999 })
|
|
|
|
t.ok(stream.write(Buffer.alloc(1500).fill('x').toString()))
|
|
t.ok(stream.write(Buffer.alloc(1500).fill('x').toString()))
|
|
t.ok(!stream.write(Buffer.alloc(MAX_WRITE).fill('x').toString()))
|
|
stream.on('drain', () => {
|
|
t.pass()
|
|
})
|
|
})
|
|
|
|
test('should throw if minLength >= maxWrite', (t) => {
|
|
t.plan(1)
|
|
t.throws(() => {
|
|
const dest = file()
|
|
const fd = fs.openSync(dest, 'w')
|
|
|
|
SonicBoom({
|
|
fd,
|
|
minLength: MAX_WRITE
|
|
})
|
|
})
|
|
})
|