-
Notifications
You must be signed in to change notification settings - Fork 35
Expand file tree
/
Copy pathfile_stream.test.js
More file actions
51 lines (44 loc) · 1.8 KB
/
file_stream.test.js
File metadata and controls
51 lines (44 loc) · 1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
'use strict';
const mm = require('mm');
const fs = require('fs');
const os = require('os');
const path = require('path');
const uuid = require('uuid');
const assert = require('assert');
const { pipeline: pump } = require('stream');
const compressing = require('../..');
describe('test/tar/file_stream.test.js', () => {
afterEach(mm.restore);
it('tar.FileStream without size', done => {
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
const sourceStream = fs.createReadStream(sourceFile);
const destFile = path.join(os.tmpdir(), uuid.v4() + '.tar');
// console.log('dest', destFile);
mm(console, 'warn', msg => {
assert(msg === 'You should specify the size of streamming data by opts.size to prevent all streaming data from loading into memory. If you are sure about memory cost, pass opts.suppressSizeWarning: true to suppress this warning');
});
const fileStream = fs.createWriteStream(destFile);
const tarStream = new compressing.tar.FileStream({ relativePath: 'xx.log' });
pump(sourceStream, tarStream, fileStream, err => {
assert(!err);
assert(fs.existsSync(destFile));
done();
});
});
it('tar.FileStream with size', done => {
const sourceFile = path.join(__dirname, '..', 'fixtures', 'xx.log');
const sourceStream = fs.createReadStream(sourceFile);
const destFile = path.join(os.tmpdir(), uuid.v4() + '.tar');
// console.log('dest', destFile);
mm(console, 'warn', msg => {
assert(!msg);
});
const fileStream = fs.createWriteStream(destFile);
const tarStream = new compressing.tar.FileStream({ relativePath: 'xx.log', size: fs.statSync(sourceFile).size });
pump(sourceStream, tarStream, fileStream, err => {
assert(!err);
assert(fs.existsSync(destFile));
done();
});
});
});