var tasks = {
name: function () {}
};
proGulp.__set__("tasks", tasks);
proGulp.task("name").should.equal(tasks.name);
proGulp.task("name", function () {});
proGulp.task("name").should.be.of.type("function");
proGulp.task("name", function () {});
proGulp.task("name")().should.be.a.Promise;
var spy_0 = sinon.spy();
proGulp.task("name", spy_0);
return proGulp.task("name")().then(function () {
spy_0.called.should.equal(true);
});
var spy_0 = sinon.spy();
var spy_1 = sinon.spy();
proGulp.task("name", spy_0, spy_1);
return proGulp.task("name")().then(function () {
spy_0.called.should.equal(true);
spy_1.called.should.equal(true);
});
var ret = proGulp.parallel();
ret.should.be.of.type("function");
var ret = proGulp.parallel([]);
ret().should.be.a.Promise;
var spy = sinon.spy();
proGulp.task("task_0", spy);
proGulp.task("task_1", spy);
var ret = proGulp.parallel(["task_0", "task_1"]);
return ret().then(function () {
spy.calledTwice.should.equal(true);
});
var ret = proGulp.sequence();
ret.should.be.of.type("function");
var ret = proGulp.sequence([]);
ret().should.be.a.Promise;
var spies = [];
var getTime = function () {
var timestamp = process.hrtime();
return timestamp[0] * 1e9 + timestamp[1];
};
var createSpy = function (n) {
spies[n] = {};
spies[n].fn = sinon.spy(function () {
spies[n].start = getTime();
return BPromise.delay(100).then(function () {
spies[n].end = getTime();
});
});
};
createSpy(0);
createSpy(1);
createSpy(2);
createSpy(3);
proGulp.task("task_0", spies[0].fn);
proGulp.task("task_1", spies[1].fn);
proGulp.task("task_2", spies[2].fn);
proGulp.task("task_3", spies[3].fn);
var ret = proGulp.sequence([
"task_0",
"task_1",
"task_2",
"task_3"
]);
return ret().then(function () {
// Check they have been called
spies[0].fn.called.should.equal(true);
spies[1].fn.called.should.equal(true);
spies[2].fn.called.should.equal(true);
spies[3].fn.called.should.equal(true);
// Check they have been called in the right order
(spies[0].start < spies[0].end).should.equal(true);
(spies[0].end < spies[1].start).should.equal(true);
(spies[1].start < spies[1].end).should.equal(true);
(spies[1].end < spies[2].start).should.equal(true);
(spies[2].start < spies[2].end).should.equal(true);
(spies[2].end < spies[3].start).should.equal(true);
(spies[3].start < spies[3].end).should.equal(true);
});
var ctx = {};
log.start.call(ctx);
ctx.start.should.be.instanceOf(Date);
log.start.call({});
util.log.calledWithMatch(/Starting/).should.equal(true);
var ctx = {
start: new Date()
};
log.end.call(ctx);
ctx.end.should.be.instanceOf(Date);
log.end.call({});
util.log.calledWithMatch(/Finished/).should.equal(true);
var ret = promisify();
ret.should.be.of.type("function");
var spy = sinon.spy();
var fn = promisify(spy);
fn();
spy.called.should.equal(true);
var spy = sinon.spy();
var fn = promisify(spy);
var ret = fn();
ret.should.be.a.Promise;
var stream = new events.EventEmitter();
stream.pipe = function noop () {};
var fn = promisify(function () {
return stream;
});
var ret = fn();
stream.emit("end");
return ret.should.be.fulfilled;
var stream = new events.EventEmitter();
stream.pipe = function noop () {};
var fn = promisify(function () {
return stream;
});
var ret = fn();
stream.emit("error");
return ret.should.be.rejected;
var promise = BPromise.resolve();
var fn = promisify(function () {
return promise;
});
var ret = fn();
ret.should.equal(promise);
var value = {};
var fn = promisify(function () {
return value;
});
var ret = fn();
return ret.should.eventually.equal(value);
var error = new Error();
var fn = promisify(function () {
throw error;
});
fn.should.throw(error);