/
src.js
122 lines (96 loc) · 3.66 KB
/
src.js
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
var vfs = require('../');
var path = require('path');
var fs = require('graceful-fs');
var bufEqual = require('buffer-equal');
var es = require('event-stream');
var File = require('vinyl');
var should = require('should');
require('mocha');
describe('source stream', function() {
it('should pass through writes', function(done) {
var expectedPath = path.join(__dirname, "./fixtures/test.coffee");
var expectedContent = fs.readFileSync(expectedPath);
var expectedFile = new File({
base: __dirname,
cwd: __dirname,
path: expectedPath,
contents: expectedContent
});
var onEnd = function(){
buffered.length.should.equal(1);
buffered[0].should.equal(expectedFile);
bufEqual(buffered[0].contents, expectedContent).should.equal(true);
done();
};
var stream = vfs.src("./fixtures/nothing.coffee");
var buffered = [];
bufferStream = es.through(buffered.push.bind(buffered), onEnd);
stream.pipe(bufferStream);
stream.write(expectedFile);
stream.end();
});
it('should glob a file with default settings', function(done) {
var expectedPath = path.join(__dirname, "./fixtures/test.coffee");
var expectedContent = fs.readFileSync(expectedPath);
var onEnd = function(){
buffered.length.should.equal(1);
should.exist(buffered[0].stat);
buffered[0].path.should.equal(expectedPath);
buffered[0].isBuffer().should.equal(true);
bufEqual(buffered[0].contents, expectedContent).should.equal(true);
done();
};
var stream = vfs.src("./fixtures/*.coffee", {cwd: __dirname});
var buffered = [];
bufferStream = es.through(buffered.push.bind(buffered), onEnd);
stream.pipe(bufferStream);
});
it('should glob a directory with default settings', function(done) {
var expectedPath = path.join(__dirname, "./fixtures/wow");
var onEnd = function(){
buffered.length.should.equal(1);
buffered[0].path.should.equal(expectedPath);
buffered[0].isNull().should.equal(true);
buffered[0].isDirectory().should.equal(true);
done();
};
var stream = vfs.src("./fixtures/wow/", {cwd: __dirname});
var buffered = [];
bufferStream = es.through(buffered.push.bind(buffered), onEnd);
stream.pipe(bufferStream);
});
it('should glob a file with read: false', function(done) {
var expectedPath = path.join(__dirname, "./fixtures/test.coffee");
var expectedContent = fs.readFileSync(expectedPath);
var onEnd = function(){
buffered.length.should.equal(1);
buffered[0].path.should.equal(expectedPath);
buffered[0].isNull().should.equal(true);
should.not.exist(buffered[0].contents);
done();
};
var stream = vfs.src("./fixtures/*.coffee", {cwd: __dirname, read: false});
var buffered = [];
bufferStream = es.through(buffered.push.bind(buffered), onEnd);
stream.pipe(bufferStream);
});
it('should glob a file with buffer: false', function(done) {
var expectedPath = path.join(__dirname, "./fixtures/test.coffee");
var expectedContent = fs.readFileSync(expectedPath);
var onEnd = function(){
buffered.length.should.equal(1);
should.exist(buffered[0].stat);
buffered[0].path.should.equal(expectedPath);
buffered[0].isStream().should.equal(true);
buffered[0].contents.pipe(es.wait(function(err, content){
should.not.exist(err);
bufEqual(Buffer(content), expectedContent);
done();
}));
};
var stream = vfs.src("./fixtures/*.coffee", {cwd: __dirname, buffer: false});
var buffered = [];
bufferStream = es.through(buffered.push.bind(buffered), onEnd);
stream.pipe(bufferStream);
});
});