Buckets:
| const { join } = require('path') | |
| const { fork } = require('child_process') | |
| 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('end after reopen', (t) => { | |
| t.plan(4) | |
| const dest = file() | |
| const stream = new SonicBoom({ dest, minLength: 4096, sync }) | |
| stream.once('ready', () => { | |
| t.pass('ready emitted') | |
| const after = dest + '-moved' | |
| stream.reopen(after) | |
| stream.write('after reopen\n') | |
| stream.on('finish', () => { | |
| t.pass('finish emitted') | |
| fs.readFile(after, 'utf8', (err, data) => { | |
| t.error(err) | |
| t.equal(data, 'after reopen\n') | |
| }) | |
| }) | |
| stream.end() | |
| }) | |
| }) | |
| test('end after 2x reopen', (t) => { | |
| t.plan(4) | |
| const dest = file() | |
| const stream = new SonicBoom({ dest, minLength: 4096, sync }) | |
| stream.once('ready', () => { | |
| t.pass('ready emitted') | |
| stream.reopen(dest + '-moved') | |
| const after = dest + '-moved-moved' | |
| stream.reopen(after) | |
| stream.write('after reopen\n') | |
| stream.on('finish', () => { | |
| t.pass('finish emitted') | |
| fs.readFile(after, 'utf8', (err, data) => { | |
| t.error(err) | |
| t.equal(data, 'after reopen\n') | |
| }) | |
| }) | |
| stream.end() | |
| }) | |
| }) | |
| test('end if not ready', (t) => { | |
| t.plan(3) | |
| const dest = file() | |
| const stream = new SonicBoom({ dest, minLength: 4096, sync }) | |
| const after = dest + '-moved' | |
| stream.reopen(after) | |
| stream.write('after reopen\n') | |
| stream.on('finish', () => { | |
| t.pass('finish emitted') | |
| fs.readFile(after, 'utf8', (err, data) => { | |
| t.error(err) | |
| t.equal(data, 'after reopen\n') | |
| }) | |
| }) | |
| stream.end() | |
| }) | |
| test('chunk data accordingly', (t) => { | |
| t.plan(2) | |
| const child = fork(join(__dirname, '..', 'fixtures', 'firehose.js'), { silent: true }) | |
| const str = Buffer.alloc(10000).fill('a').toString() | |
| let data = '' | |
| child.stdout.on('data', function (chunk) { | |
| data += chunk.toString() | |
| }) | |
| child.stdout.on('end', function () { | |
| t.equal(data, str) | |
| }) | |
| child.on('close', function (code) { | |
| t.equal(code, 0) | |
| }) | |
| }) | |
| } | |
Xet Storage Details
- Size:
- 2.35 kB
- Xet hash:
- 7acf89022919bd3f110f15060fa152a1d6d3612221131a1f5bd8cf44a8da66a8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.