50 lines
984 B
JavaScript
50 lines
984 B
JavaScript
'use strict'
|
|
|
|
const fs = require('fs')
|
|
const SonicBoom = require('../')
|
|
const { file, runTests } = require('./helper')
|
|
|
|
runTests(buildTests)
|
|
|
|
function buildTests (test, sync) {
|
|
// Reset the umask for testing
|
|
process.umask(0o000)
|
|
|
|
test('destroy', (t) => {
|
|
t.plan(5)
|
|
|
|
const dest = file()
|
|
const fd = fs.openSync(dest, 'w')
|
|
const stream = new SonicBoom({ fd, sync })
|
|
|
|
t.ok(stream.write('hello world\n'))
|
|
stream.destroy()
|
|
t.throws(() => { stream.write('hello world\n') })
|
|
|
|
fs.readFile(dest, 'utf8', function (err, data) {
|
|
t.error(err)
|
|
t.equal(data, 'hello world\n')
|
|
})
|
|
|
|
stream.on('finish', () => {
|
|
t.fail('finish emitted')
|
|
})
|
|
|
|
stream.on('close', () => {
|
|
t.pass('close emitted')
|
|
})
|
|
})
|
|
|
|
test('destroy while opening', (t) => {
|
|
t.plan(1)
|
|
|
|
const dest = file()
|
|
const stream = new SonicBoom({ dest })
|
|
|
|
stream.destroy()
|
|
stream.on('close', () => {
|
|
t.pass('close emitted')
|
|
})
|
|
})
|
|
}
|