1 | var concat = require('../');
|
2 | var should = require('should');
|
3 | var os = require('os');
|
4 | var path = require('path');
|
5 | var File = require('gulp-util').File;
|
6 | var Buffer = require('buffer').Buffer;
|
7 | require('mocha');
|
8 |
|
9 | describe('gulp-concat', function() {
|
10 | describe('concat()', function() {
|
11 | var input;
|
12 |
|
13 | input = ['wadup'];
|
14 | testFiles(concat('test.js'), input, 'wadup');
|
15 | testFiles(concat('test.js', {newLine: '\r\n'}), input, 'wadup');
|
16 | testFiles(concat('test.js', {newLine: ''}), input, 'wadup');
|
17 |
|
18 | input = ['wadup', 'doe'];
|
19 | testFiles(concat('test.js'), input, 'wadup\ndoe');
|
20 | testFiles(concat('test.js', {newLine: '\r\n'}), input, 'wadup\r\ndoe');
|
21 | testFiles(concat('test.js', {newLine: ''}), input, 'wadupdoe');
|
22 |
|
23 | input = ['wadup', 'doe', 'hey'];
|
24 | testFiles(concat('test.js'), input, 'wadup\ndoe\nhey');
|
25 | testFiles(concat('test.js', {newLine: '\r\n'}), input, 'wadup\r\ndoe\r\nhey');
|
26 | testFiles(concat('test.js', {newLine: ''}), input, 'wadupdoehey');
|
27 |
|
28 | input = [[65, 66], [67, 68], [69, 70]];
|
29 | testFiles(concat('test.js'), input, 'AB\nCD\nEF');
|
30 | testFiles(concat('test.js', {newLine: '\r\n'}), input, 'AB\r\nCD\r\nEF');
|
31 | testFiles(concat('test.js', {newLine: ''}), input, 'ABCDEF');
|
32 |
|
33 | function testFiles(stream, contentses, result) {
|
34 | it('should concat one or several files', function(done) {
|
35 | stream.on('data', function(newFile){
|
36 | should.exist(newFile);
|
37 | should.exist(newFile.path);
|
38 | should.exist(newFile.relative);
|
39 | should.exist(newFile.contents);
|
40 |
|
41 | var newFilePath = path.resolve(newFile.path);
|
42 | var expectedFilePath = path.resolve('/home/contra/test/test.js');
|
43 | newFilePath.should.equal(expectedFilePath);
|
44 |
|
45 | newFile.relative.should.equal('test.js');
|
46 | String(newFile.contents).should.equal(result);
|
47 | Buffer.isBuffer(newFile.contents).should.equal(true);
|
48 | done();
|
49 | });
|
50 |
|
51 | contentses.forEach(function(contents, i) {
|
52 | stream.write(new File({
|
53 | cwd: '/home/contra/',
|
54 | base: '/home/contra/test',
|
55 | path: '/home/contra/test/file' + i.toString() + '.js',
|
56 | contents: new Buffer(contents)
|
57 | }));
|
58 | });
|
59 |
|
60 | stream.end();
|
61 | });
|
62 | };
|
63 | });
|
64 | });
|