CoolFace
Apppublic

strong-tie/inbound-calls

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
mode.test.js117 linesDownload Raw Back to test
1'use strict'2 3const fs = require('fs')4const path = require('path')5const SonicBoom = require('../')6const { file, runTests } = require('./helper')7 8const isWindows = process.platform === 'win32'9 10runTests(buildTests)11 12function buildTests (test, sync) {13  // Reset the umask for testing14  process.umask(0o000)15 16  test('mode', { skip: isWindows }, (t) => {17    t.plan(6)18 19    const dest = file()20    const mode = 0o66621    const stream = new SonicBoom({ dest, sync, mode })22 23    stream.on('ready', () => {24      t.pass('ready emitted')25    })26 27    t.ok(stream.write('hello world\n'))28    t.ok(stream.write('something else\n'))29 30    stream.end()31 32    stream.on('finish', () => {33      fs.readFile(dest, 'utf8', (err, data) => {34        t.error(err)35        t.equal(data, 'hello world\nsomething else\n')36        t.equal(fs.statSync(dest).mode & 0o777, stream.mode)37      })38    })39  })40 41  test('mode default', { skip: isWindows }, (t) => {42    t.plan(6)43 44    const dest = file()45    const defaultMode = 0o66646    const stream = new SonicBoom({ dest, sync })47 48    stream.on('ready', () => {49      t.pass('ready emitted')50    })51 52    t.ok(stream.write('hello world\n'))53    t.ok(stream.write('something else\n'))54 55    stream.end()56 57    stream.on('finish', () => {58      fs.readFile(dest, 'utf8', (err, data) => {59        t.error(err)60        t.equal(data, 'hello world\nsomething else\n')61        t.equal(fs.statSync(dest).mode & 0o777, defaultMode)62      })63    })64  })65 66  test('mode on mkdir', { skip: isWindows }, (t) => {67    t.plan(5)68 69    const dest = path.join(file(), 'out.log')70    const mode = 0o66671    const stream = new SonicBoom({ dest, mkdir: true, mode, sync })72 73    stream.on('ready', () => {74      t.pass('ready emitted')75    })76 77    t.ok(stream.write('hello world\n'))78 79    stream.flush()80 81    stream.on('drain', () => {82      fs.readFile(dest, 'utf8', (err, data) => {83        t.error(err)84        t.equal(data, 'hello world\n')85        t.equal(fs.statSync(dest).mode & 0o777, stream.mode)86        stream.end()87      })88    })89  })90 91  test('mode on append', { skip: isWindows }, (t) => {92    t.plan(5)93 94    const dest = file()95    fs.writeFileSync(dest, 'hello world\n', 'utf8', 0o422)96    const mode = isWindows ? 0o444 : 0o66697    const stream = new SonicBoom({ dest, append: false, mode, sync })98 99    stream.on('ready', () => {100      t.pass('ready emitted')101    })102 103    t.ok(stream.write('something else\n'))104 105    stream.flush()106 107    stream.on('drain', () => {108      fs.readFile(dest, 'utf8', (err, data) => {109        t.error(err)110        t.equal(data, 'something else\n')111        t.equal(fs.statSync(dest).mode & 0o777, stream.mode)112        stream.end()113      })114    })115  })116}117