CoolFace
Apppublic

strong-tie/inbound-calls

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
end.test.js99 linesDownload Raw Back to test
1'use strict'2 3const { join } = require('path')4const { fork } = require('child_process')5const fs = require('fs')6const SonicBoom = require('../')7const { file, runTests } = require('./helper')8 9runTests(buildTests)10 11function buildTests (test, sync) {12  // Reset the umask for testing13  process.umask(0o000)14 15  test('end after reopen', (t) => {16    t.plan(4)17 18    const dest = file()19    const stream = new SonicBoom({ dest, minLength: 4096, sync })20 21    stream.once('ready', () => {22      t.pass('ready emitted')23      const after = dest + '-moved'24      stream.reopen(after)25      stream.write('after reopen\n')26      stream.on('finish', () => {27        t.pass('finish emitted')28        fs.readFile(after, 'utf8', (err, data) => {29          t.error(err)30          t.equal(data, 'after reopen\n')31        })32      })33      stream.end()34    })35  })36 37  test('end after 2x reopen', (t) => {38    t.plan(4)39 40    const dest = file()41    const stream = new SonicBoom({ dest, minLength: 4096, sync })42 43    stream.once('ready', () => {44      t.pass('ready emitted')45      stream.reopen(dest + '-moved')46      const after = dest + '-moved-moved'47      stream.reopen(after)48      stream.write('after reopen\n')49      stream.on('finish', () => {50        t.pass('finish emitted')51        fs.readFile(after, 'utf8', (err, data) => {52          t.error(err)53          t.equal(data, 'after reopen\n')54        })55      })56      stream.end()57    })58  })59 60  test('end if not ready', (t) => {61    t.plan(3)62 63    const dest = file()64    const stream = new SonicBoom({ dest, minLength: 4096, sync })65    const after = dest + '-moved'66    stream.reopen(after)67    stream.write('after reopen\n')68    stream.on('finish', () => {69      t.pass('finish emitted')70      fs.readFile(after, 'utf8', (err, data) => {71        t.error(err)72        t.equal(data, 'after reopen\n')73      })74    })75    stream.end()76  })77 78  test('chunk data accordingly', (t) => {79    t.plan(2)80 81    const child = fork(join(__dirname, '..', 'fixtures', 'firehose.js'), { silent: true })82    const str = Buffer.alloc(10000).fill('a').toString()83 84    let data = ''85 86    child.stdout.on('data', function (chunk) {87      data += chunk.toString()88    })89 90    child.stdout.on('end', function () {91      t.equal(data, str)92    })93 94    child.on('close', function (code) {95      t.equal(code, 0)96    })97  })98}99