initial commit
This commit is contained in:
commit
d3fcd7f10c
3159 files changed
+349702
No files matched your search
+132
@@ -0,0 +1,132 @@
|
||||
'use strict';
|
||||
|
||||
var gulp = require('../');
|
||||
var should = require('should');
|
||||
var join = require('path').join;
|
||||
var rimraf = require('rimraf');
|
||||
var fs = require('graceful-fs');
|
||||
|
||||
require('mocha');
|
||||
|
||||
var outpath = join(__dirname, "./out-fixtures");
|
||||
|
||||
describe('gulp output stream', function() {
|
||||
describe('dest()', function() {
|
||||
beforeEach(rimraf.bind(null, outpath));
|
||||
afterEach(rimraf.bind(null, outpath));
|
||||
|
||||
it('should return a stream', function(done) {
|
||||
var stream = gulp.dest(join(__dirname, "./fixtures/"));
|
||||
should.exist(stream);
|
||||
should.exist(stream.on);
|
||||
done();
|
||||
});
|
||||
|
||||
it('should return a output stream that writes files', function(done) {
|
||||
var instream = gulp.src(join(__dirname, "./fixtures/**/*.txt"));
|
||||
var outstream = gulp.dest(outpath);
|
||||
instream.pipe(outstream);
|
||||
|
||||
outstream.on('error', done);
|
||||
outstream.on('data', function(file) {
|
||||
// data should be re-emitted right
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.exist(file.contents);
|
||||
join(file.path,'').should.equal(join(outpath, "./copy/example.txt"));
|
||||
String(file.contents).should.equal("this is a test");
|
||||
});
|
||||
outstream.on('end', function() {
|
||||
fs.readFile(join(outpath, "copy", "example.txt"), function(err, contents){
|
||||
should.not.exist(err);
|
||||
should.exist(contents);
|
||||
String(contents).should.equal("this is a test");
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a output stream that does not write non-read files', function(done) {
|
||||
var instream = gulp.src(join(__dirname, "./fixtures/**/*.txt"), {read:false});
|
||||
var outstream = gulp.dest(outpath);
|
||||
instream.pipe(outstream);
|
||||
|
||||
outstream.on('error', done);
|
||||
outstream.on('data', function(file) {
|
||||
// data should be re-emitted right
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.not.exist(file.contents);
|
||||
join(file.path,'').should.equal(join(outpath, "./copy/example.txt"));
|
||||
});
|
||||
outstream.on('end', function() {
|
||||
fs.readFile(join(outpath, "copy", "example.txt"), function(err, contents){
|
||||
should.exist(err);
|
||||
should.not.exist(contents);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a output stream that writes streaming files', function(done) {
|
||||
var instream = gulp.src(join(__dirname, "./fixtures/**/*.txt"), {buffer:false});
|
||||
var outstream = instream.pipe(gulp.dest(outpath));
|
||||
|
||||
outstream.on('error', done);
|
||||
outstream.on('data', function(file) {
|
||||
// data should be re-emitted right
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.exist(file.contents);
|
||||
join(file.path,'').should.equal(join(outpath, "./copy/example.txt"));
|
||||
});
|
||||
outstream.on('end', function() {
|
||||
fs.readFile(join(outpath, "copy", "example.txt"), function(err, contents){
|
||||
should.not.exist(err);
|
||||
should.exist(contents);
|
||||
String(contents).should.equal("this is a test");
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a output stream that writes streaming files into new directories', function(done) {
|
||||
testWriteDir({}, done);
|
||||
});
|
||||
|
||||
it('should return a output stream that writes streaming files into new directories (buffer: false)', function(done) {
|
||||
testWriteDir({buffer: false}, done);
|
||||
});
|
||||
|
||||
it('should return a output stream that writes streaming files into new directories (read: false)', function(done) {
|
||||
testWriteDir({read: false}, done);
|
||||
});
|
||||
|
||||
it('should return a output stream that writes streaming files into new directories (read: false, buffer: false)', function(done) {
|
||||
testWriteDir({buffer: false, read: false}, done);
|
||||
});
|
||||
|
||||
function testWriteDir(srcOptions, done) {
|
||||
var instream = gulp.src(join(__dirname, "./fixtures/stuff"), srcOptions);
|
||||
var outstream = instream.pipe(gulp.dest(outpath));
|
||||
|
||||
outstream.on('error', done);
|
||||
outstream.on('data', function(file) {
|
||||
// data should be re-emitted right
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
join(file.path,'').should.equal(join(outpath, "./stuff"));
|
||||
});
|
||||
outstream.on('end', function() {
|
||||
fs.exists(join(outpath, "stuff"), function(exists) {
|
||||
/* stinks that ok is an expression instead of a function call */
|
||||
/* jshint expr: true */
|
||||
should(exists).be.ok;
|
||||
/* jshint expr: false */
|
||||
done();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
+1
@@ -0,0 +1 @@
|
||||
this is a test
|
||||
Whitespace-only changes.
Whitespace-only changes.
+1
@@ -0,0 +1 @@
|
||||
this is a test
|
||||
+1
@@ -0,0 +1 @@
|
||||
test template
|
||||
+174
@@ -0,0 +1,174 @@
|
||||
'use strict';
|
||||
|
||||
var gulp = require('../');
|
||||
var should = require('should');
|
||||
var join = require('path').join;
|
||||
|
||||
require('mocha');
|
||||
|
||||
describe('gulp input stream', function() {
|
||||
describe('src()', function() {
|
||||
it('should return a stream', function(done) {
|
||||
var stream = gulp.src(join(__dirname, "./fixtures/*.coffee"));
|
||||
should.exist(stream);
|
||||
should.exist(stream.on);
|
||||
done();
|
||||
});
|
||||
it('should return a input stream from a flat glob', function(done) {
|
||||
var stream = gulp.src(join(__dirname, "./fixtures/*.coffee"));
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.exist(file.contents);
|
||||
join(file.path,'').should.equal(join(__dirname, "./fixtures/test.coffee"));
|
||||
String(file.contents).should.equal("this is a test");
|
||||
});
|
||||
stream.on('end', function() {
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a input stream for multiple globs', function(done) {
|
||||
var globArray = [
|
||||
join(__dirname, "./fixtures/stuff/run.dmc"),
|
||||
join(__dirname, "./fixtures/stuff/test.dmc")
|
||||
];
|
||||
var stream = gulp.src(globArray);
|
||||
|
||||
var files = [];
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
files.push(file);
|
||||
});
|
||||
stream.on('end', function() {
|
||||
files.length.should.equal(2);
|
||||
files[0].path.should.equal(globArray[0]);
|
||||
files[1].path.should.equal(globArray[1]);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a input stream for multiple globs, with negation', function(done) {
|
||||
var expectedPath = join(__dirname, "./fixtures/stuff/run.dmc");
|
||||
var globArray = [
|
||||
join(__dirname, "./fixtures/stuff/*.dmc"),
|
||||
'!' + join(__dirname, "./fixtures/stuff/test.dmc"),
|
||||
];
|
||||
var stream = gulp.src(globArray);
|
||||
|
||||
var files = [];
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
files.push(file);
|
||||
});
|
||||
stream.on('end', function() {
|
||||
files.length.should.equal(1);
|
||||
files[0].path.should.equal(expectedPath);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a input stream for multiple globs, with negation', function(done) {
|
||||
var expectedPath = join(__dirname, "./fixtures/stuff/run.dmc");
|
||||
var globArray = [
|
||||
join(__dirname, "./fixtures/stuff/run.dmc"),
|
||||
'!' + join(__dirname, "./fixtures/stuff/test.dmc"),
|
||||
];
|
||||
var stream = gulp.src(globArray);
|
||||
|
||||
var files = [];
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
files.push(file);
|
||||
});
|
||||
stream.on('end', function() {
|
||||
files.length.should.equal(1);
|
||||
files[0].path.should.equal(expectedPath);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a input stream with no contents when read is false', function(done) {
|
||||
var stream = gulp.src(join(__dirname, "./fixtures/*.coffee"), {read: false});
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.not.exist(file.contents);
|
||||
join(file.path,'').should.equal(join(__dirname, "./fixtures/test.coffee"));
|
||||
});
|
||||
stream.on('end', function() {
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('should return a input stream with contents as stream when buffer is false', function(done) {
|
||||
var stream = gulp.src(join(__dirname, "./fixtures/*.coffee"), {buffer: false});
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.exist(file.contents);
|
||||
var buf = "";
|
||||
file.contents.on('data', function(d){
|
||||
buf += d;
|
||||
});
|
||||
file.contents.on('end', function(){
|
||||
buf.should.equal("this is a test");
|
||||
done();
|
||||
});
|
||||
join(file.path,'').should.equal(join(__dirname, "./fixtures/test.coffee"));
|
||||
});
|
||||
});
|
||||
it('should return a input stream from a deep glob', function(done) {
|
||||
var stream = gulp.src(join(__dirname, "./fixtures/**/*.jade"));
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.exist(file.contents);
|
||||
join(file.path,'').should.equal(join(__dirname, "./fixtures/test/run.jade"));
|
||||
String(file.contents).should.equal("test template");
|
||||
});
|
||||
stream.on('end', function() {
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('should return a input stream from a deeper glob', function(done) {
|
||||
var stream = gulp.src(join(__dirname, "./fixtures/**/*.dmc"));
|
||||
var a = 0;
|
||||
stream.on('error', done);
|
||||
stream.on('data', function() {
|
||||
++a;
|
||||
});
|
||||
stream.on('end', function() {
|
||||
a.should.equal(2);
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return a file stream from a flat path', function(done) {
|
||||
var a = 0;
|
||||
var stream = gulp.src(join(__dirname, "./fixtures/test.coffee"));
|
||||
stream.on('error', done);
|
||||
stream.on('data', function(file) {
|
||||
++a;
|
||||
should.exist(file);
|
||||
should.exist(file.path);
|
||||
should.exist(file.contents);
|
||||
join(file.path,'').should.equal(join(__dirname, "./fixtures/test.coffee"));
|
||||
String(file.contents).should.equal("this is a test");
|
||||
});
|
||||
stream.on('end', function() {
|
||||
a.should.equal(1);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
'use strict';
|
||||
|
||||
var taskTree = require('../lib/taskTree');
|
||||
var should = require('should');
|
||||
|
||||
require('mocha');
|
||||
|
||||
describe('taskTree()', function() {
|
||||
it('should form a tree properly', function(done){
|
||||
should.exist(taskTree); // lol shutup jshint
|
||||
|
||||
var tasks = {
|
||||
test: {
|
||||
dep: ['abc', 'def']
|
||||
},
|
||||
abc: {
|
||||
dep: ['def']
|
||||
},
|
||||
def: {
|
||||
dep: []
|
||||
}
|
||||
};
|
||||
|
||||
var expectTree = {
|
||||
nodes: [{
|
||||
label: 'test',
|
||||
nodes: ['abc', 'def']
|
||||
|
||||
}, {
|
||||
label: 'abc',
|
||||
nodes: ['def']
|
||||
|
||||
}, {
|
||||
label: 'def',
|
||||
nodes: []
|
||||
|
||||
}]
|
||||
};
|
||||
|
||||
taskTree(tasks).should.eql(expectTree);
|
||||
done();
|
||||
});
|
||||
});
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
'use strict';
|
||||
|
||||
var gulp = require('../');
|
||||
var Q = require('q');
|
||||
var should = require('should');
|
||||
require('mocha');
|
||||
|
||||
describe('gulp tasks', function() {
|
||||
describe('task()', function() {
|
||||
it('should define a task', function(done) {
|
||||
var fn;
|
||||
fn = function() {};
|
||||
gulp.task('test', fn);
|
||||
should.exist(gulp.tasks.test);
|
||||
gulp.tasks.test.fn.should.equal(fn);
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
});
|
||||
describe('run()', function() {
|
||||
it('should run multiple tasks', function(done) {
|
||||
var a, fn, fn2;
|
||||
a = 0;
|
||||
fn = function() {
|
||||
this.should.equal(gulp);
|
||||
++a;
|
||||
};
|
||||
fn2 = function() {
|
||||
this.should.equal(gulp);
|
||||
++a;
|
||||
};
|
||||
gulp.task('test', fn);
|
||||
gulp.task('test2', fn2);
|
||||
gulp.run('test', 'test2');
|
||||
a.should.equal(2);
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
it('should run all tasks when call run() multiple times', function(done) {
|
||||
var a, fn, fn2;
|
||||
a = 0;
|
||||
fn = function() {
|
||||
this.should.equal(gulp);
|
||||
++a;
|
||||
};
|
||||
fn2 = function() {
|
||||
this.should.equal(gulp);
|
||||
++a;
|
||||
};
|
||||
gulp.task('test', fn);
|
||||
gulp.task('test2', fn2);
|
||||
gulp.run('test');
|
||||
gulp.run('test2');
|
||||
a.should.equal(2);
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
it('should run all async promise tasks', function(done) {
|
||||
var a, fn, fn2;
|
||||
a = 0;
|
||||
fn = function() {
|
||||
var deferred = Q.defer();
|
||||
setTimeout(function () {
|
||||
++a;
|
||||
deferred.resolve();
|
||||
},1);
|
||||
return deferred.promise;
|
||||
};
|
||||
fn2 = function() {
|
||||
var deferred = Q.defer();
|
||||
setTimeout(function () {
|
||||
++a;
|
||||
deferred.resolve();
|
||||
},1);
|
||||
return deferred.promise;
|
||||
};
|
||||
gulp.task('test', fn);
|
||||
gulp.task('test2', fn2);
|
||||
gulp.run('test');
|
||||
gulp.run('test2', function () {
|
||||
gulp.isRunning.should.equal(false);
|
||||
a.should.equal(2);
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
gulp.isRunning.should.equal(true);
|
||||
});
|
||||
it('should run all async callback tasks', function(done) {
|
||||
var a, fn, fn2;
|
||||
a = 0;
|
||||
fn = function(cb) {
|
||||
setTimeout(function () {
|
||||
++a;
|
||||
cb(null);
|
||||
},1);
|
||||
};
|
||||
fn2 = function(cb) {
|
||||
setTimeout(function () {
|
||||
++a;
|
||||
cb(null);
|
||||
},1);
|
||||
};
|
||||
gulp.task('test', fn);
|
||||
gulp.task('test2', fn2);
|
||||
gulp.run('test');
|
||||
gulp.run('test2', function () {
|
||||
gulp.isRunning.should.equal(false);
|
||||
a.should.equal(2);
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
gulp.isRunning.should.equal(true);
|
||||
});
|
||||
it('should emit task_not_found and throw an error when task is not defined', function(done) {
|
||||
gulp.on('task_not_found', function(err){
|
||||
should.exist(err);
|
||||
should.exist(err.task);
|
||||
err.task.should.equal('test');
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
try {
|
||||
gulp.run('test');
|
||||
} catch (err) {
|
||||
should.exist(err);
|
||||
}
|
||||
});
|
||||
it('should run task scoped to gulp', function(done) {
|
||||
var a, fn;
|
||||
a = 0;
|
||||
fn = function() {
|
||||
this.should.equal(gulp);
|
||||
++a;
|
||||
};
|
||||
gulp.task('test', fn);
|
||||
gulp.run('test');
|
||||
a.should.equal(1);
|
||||
gulp.isRunning.should.equal(false);
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
it('should run default task scoped to gulp', function(done) {
|
||||
var a, fn;
|
||||
a = 0;
|
||||
fn = function() {
|
||||
this.should.equal(gulp);
|
||||
++a;
|
||||
};
|
||||
gulp.task('default', fn);
|
||||
gulp.run();
|
||||
a.should.equal(1);
|
||||
gulp.isRunning.should.equal(false);
|
||||
gulp.reset();
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
+111
@@ -0,0 +1,111 @@
|
||||
'use strict';
|
||||
|
||||
var gulp = require('../');
|
||||
var fs = require('graceful-fs');
|
||||
var rimraf = require('rimraf');
|
||||
var mkdirp = require('mkdirp');
|
||||
var path = require('path');
|
||||
|
||||
var should = require('should');
|
||||
require('mocha');
|
||||
|
||||
var outpath = path.join(__dirname, "./out-fixtures");
|
||||
|
||||
describe('gulp', function() {
|
||||
describe('watch()', function() {
|
||||
beforeEach(rimraf.bind(null, outpath));
|
||||
beforeEach(mkdirp.bind(null, outpath));
|
||||
afterEach(rimraf.bind(null, outpath));
|
||||
|
||||
var tempFileContent = 'A test generated this file and it is safe to delete';
|
||||
|
||||
var writeTimeout = 125; // Wait for it to get to the filesystem
|
||||
var writeFileWait = function (name, content, cb) {
|
||||
if (!cb) cb = function(){};
|
||||
setTimeout(function () {
|
||||
fs.writeFile(name, content, cb);
|
||||
}, writeTimeout);
|
||||
};
|
||||
it('should call the function when file changes: no options', function(done) {
|
||||
|
||||
// arrange
|
||||
var tempFile = path.join(outpath, 'watch-func.txt');
|
||||
fs.writeFile(tempFile, tempFileContent, function () {
|
||||
|
||||
// assert: it works if it calls done
|
||||
var watcher = gulp.watch(tempFile, function (evt) {
|
||||
should.exist(evt);
|
||||
should.exist(evt.path);
|
||||
should.exist(evt.type);
|
||||
evt.type.should.equal('changed');
|
||||
evt.path.should.equal(path.resolve(tempFile));
|
||||
watcher.end();
|
||||
done();
|
||||
});
|
||||
|
||||
// act: change file
|
||||
writeFileWait(tempFile, tempFileContent+' changed');
|
||||
});
|
||||
});
|
||||
|
||||
it('should call the function when file changes: w/ options', function(done) {
|
||||
// arrange
|
||||
var tempFile = path.join(outpath, 'watch-func-options.txt');
|
||||
fs.writeFile(tempFile, tempFileContent, function () {
|
||||
|
||||
// assert: it works if it calls done
|
||||
var watcher = gulp.watch(tempFile, {debounceDelay:5}, function (evt) {
|
||||
should.exist(evt);
|
||||
should.exist(evt.path);
|
||||
should.exist(evt.type);
|
||||
evt.type.should.equal('changed');
|
||||
evt.path.should.equal(path.resolve(tempFile));
|
||||
watcher.end();
|
||||
done();
|
||||
});
|
||||
|
||||
// act: change file
|
||||
writeFileWait(tempFile, tempFileContent+' changed');
|
||||
});
|
||||
});
|
||||
|
||||
it('should run many tasks: w/ options', function(done) {
|
||||
// arrange
|
||||
var tempFile = path.join(outpath, 'watch-task-options.txt');
|
||||
var task1 = 'task1';
|
||||
var task2 = 'task2';
|
||||
var task3 = 'task3';
|
||||
var a = 0;
|
||||
var timeout = writeTimeout * 2.5;
|
||||
|
||||
fs.writeFile(tempFile, tempFileContent, function () {
|
||||
|
||||
gulp.task(task1, function () {
|
||||
a++;
|
||||
});
|
||||
gulp.task(task2, function () {
|
||||
a += 10;
|
||||
});
|
||||
gulp.task(task3, function () {
|
||||
throw new Error("task3 called!");
|
||||
});
|
||||
|
||||
// assert
|
||||
setTimeout(function () {
|
||||
a.should.equal(11); // task1 and task2
|
||||
|
||||
gulp.reset();
|
||||
watcher.end();
|
||||
done();
|
||||
}, timeout);
|
||||
|
||||
// it works if it calls the task
|
||||
var watcher = gulp.watch(tempFile, {debounceDelay:timeout/2}, [task1,task2]);
|
||||
|
||||
// act: change file
|
||||
writeFileWait(tempFile, tempFileContent+' changed');
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user