104 lines
13 KiB
JavaScript
104 lines
13 KiB
JavaScript
"use strict";
|
|
require("typings-test");
|
|
var gulp = require("gulp");
|
|
var gulpFunction = require("../dist/index.js");
|
|
var beautylog = require("beautylog");
|
|
var Q = require("q");
|
|
var myFunction = function () {
|
|
var done = Q.defer();
|
|
beautylog.log("Function executed");
|
|
done.resolve();
|
|
return done.promise;
|
|
};
|
|
var myFunction2 = function () {
|
|
var done = Q.defer();
|
|
beautylog.ok("Function2 executed");
|
|
done.resolve();
|
|
return done.promise;
|
|
};
|
|
var myFunction3 = function () {
|
|
var done = Q.defer();
|
|
beautylog.success("Function3 executed");
|
|
done.resolve();
|
|
return done.promise;
|
|
};
|
|
var beforeFunction = function () {
|
|
var done = Q.defer();
|
|
beautylog.success("beforeFunction executed");
|
|
done.resolve();
|
|
return done.promise;
|
|
};
|
|
var middleFunctionRun = false;
|
|
var middleFunction = function () {
|
|
var done = Q.defer();
|
|
beautylog.success("middleFunction executed");
|
|
setTimeout(function () {
|
|
beautylog.log("timeout fired");
|
|
middleFunctionRun = true;
|
|
done.resolve();
|
|
}, 500);
|
|
return done.promise;
|
|
};
|
|
var afterFunction = function () {
|
|
var done = Q.defer();
|
|
beautylog.success("afterFunction executed");
|
|
done.resolve();
|
|
return done.promise;
|
|
};
|
|
var timeoutFunction = function () {
|
|
var done = Q.defer();
|
|
setTimeout(function () {
|
|
beautylog.log("largeTimeout fired");
|
|
done.resolve();
|
|
}, 2000);
|
|
return done.promise;
|
|
};
|
|
describe("gulpFunction", function () {
|
|
it("should run through smoothly with " + "'forEach'".blue, function (done) {
|
|
gulp.src('./test/*.md')
|
|
.pipe(gulpFunction(myFunction, 'forEach'))
|
|
.pipe(gulp.dest("./test/result/"));
|
|
gulp.src('./test/*.md')
|
|
.pipe(gulpFunction([myFunction2, myFunction3], 'forEach'))
|
|
.pipe(gulp.dest("./test/result/"))
|
|
.pipe(gulpFunction(done, "atEnd"));
|
|
});
|
|
it("should run through smoothly with " + "'atEnd'".blue, function (done) {
|
|
gulp.src('./test/*.md')
|
|
.pipe(gulpFunction(myFunction, 'atEnd'))
|
|
.pipe(gulp.dest("./test/result/"));
|
|
gulp.src('./test/*.md')
|
|
.pipe(gulpFunction([myFunction2, myFunction3], 'atEnd'))
|
|
.pipe(gulp.dest("./test/result/"))
|
|
.pipe(gulpFunction(done, "atEnd"));
|
|
});
|
|
it("should run through smoothly once with " + "'atFirst'".blue, function (done) {
|
|
gulp.src('./test/*.md')
|
|
.pipe(gulpFunction([myFunction2, myFunction3], 'forFirst'))
|
|
.pipe(gulp.dest("./test/result/"))
|
|
.pipe(gulpFunction(done, "atEnd"));
|
|
});
|
|
it("should run in order", function (done) {
|
|
this.timeout(5000);
|
|
var stream = gulp.src('./test/*.md')
|
|
.pipe(gulpFunction([beforeFunction, middleFunction, middleFunction], 'atEnd'))
|
|
.pipe(gulpFunction(function () {
|
|
beautylog.log("stream progressed");
|
|
var done2 = Q.defer();
|
|
done2.resolve();
|
|
return done2.promise;
|
|
}, "forEach"))
|
|
.pipe(gulpFunction(function () {
|
|
beautylog.log("nextStep");
|
|
}))
|
|
.pipe(gulpFunction(afterFunction, "atEnd"))
|
|
.pipe(gulpFunction(timeoutFunction, "atEnd"));
|
|
stream.on("finish", function () {
|
|
beautylog.info("stream finished");
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QyxDQUFDLENBQUM7UUFFakQsTUFBTSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUM7WUFDZixTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbEMsSUFBSSxFQUFFLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDLENBQUMiLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcInR5cGluZ3MtdGVzdFwiXHJcbnZhciBndWxwID0gcmVxdWlyZShcImd1bHBcIik7XHJcbnZhciBndWxwRnVuY3Rpb24gPSByZXF1aXJlKFwiLi4vZGlzdC9pbmRleC5qc1wiKTtcclxudmFyIGJlYXV0eWxvZyA9IHJlcXVpcmUoXCJiZWF1dHlsb2dcIik7XHJcbnZhciBRID0gcmVxdWlyZShcInFcIik7XHJcblxyXG52YXIgbXlGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBkb25lID0gUS5kZWZlcigpXHJcbiAgICBiZWF1dHlsb2cubG9nKFwiRnVuY3Rpb24gZXhlY3V0ZWRcIik7XHJcbiAgICBkb25lLnJlc29sdmUoKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn07XHJcbnZhciBteUZ1bmN0aW9uMiA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBkb25lID0gUS5kZWZlcigpO1xyXG4gICAgYmVhdXR5bG9nLm9rKFwiRnVuY3Rpb24yIGV4ZWN1dGVkXCIpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59O1xyXG52YXIgbXlGdW5jdGlvbjMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgZG9uZSA9IFEuZGVmZXIoKTtcclxuICAgIGJlYXV0eWxvZy5zdWNjZXNzKFwiRnVuY3Rpb24zIGV4ZWN1dGVkXCIpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59O1xyXG5cclxudmFyIGJlZm9yZUZ1bmN0aW9uID0gZnVuY3Rpb24gKCkge1xyXG4gICAgdmFyIGRvbmUgPSBRLmRlZmVyKCk7XHJcbiAgICBiZWF1dHlsb2cuc3VjY2VzcyhcImJlZm9yZUZ1bmN0aW9uIGV4ZWN1dGVkXCIpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59O1xyXG5cclxudmFyIG1pZGRsZUZ1bmN0aW9uUnVuID0gZmFsc2U7XHJcblxyXG52YXIgbWlkZGxlRnVuY3Rpb24gPSBmdW5jdGlvbiAoKSB7XHJcbiAgICB2YXIgZG9uZSA9IFEuZGVmZXIoKTtcclxuICAgIGJlYXV0eWxvZy5zdWNjZXNzKFwibWlkZGxlRnVuY3Rpb24gZXhlY3V0ZWRcIik7XHJcbiAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgYmVhdXR5bG9nLmxvZyhcInRpbWVvdXQgZmlyZWRcIik7XHJcbiAgICAgICAgbWlkZGxlRnVuY3Rpb25SdW4gPSB0cnVlO1xyXG4gICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgfSwgNTAwKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn07XHJcblxyXG52YXIgYWZ0ZXJGdW5jdGlvbiA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBkb25lID0gUS5kZWZlcigpO1xyXG4gICAgYmVhdXR5bG9nLnN1Y2Nlc3MoXCJhZnRlckZ1bmN0aW9uIGV4ZWN1dGVkXCIpO1xyXG4gICAgZG9uZS5yZXNvbHZlKCk7XHJcbiAgICByZXR1cm4gZG9uZS5wcm9taXNlO1xyXG59O1xyXG5cclxubGV0IHRpbWVvdXRGdW5jdGlvbiA9IGZ1bmN0aW9uKCl7XHJcbiAgICB2YXIgZG9uZSA9IFEuZGVmZXIoKTtcclxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXtcclxuICAgICAgICBiZWF1dHlsb2cubG9nKFwibGFyZ2VUaW1lb3V0IGZpcmVkXCIpO1xyXG4gICAgICAgIGRvbmUucmVzb2x2ZSgpO1xyXG4gICAgfSwyMDAwKTtcclxuICAgIHJldHVybiBkb25lLnByb21pc2U7XHJcbn07XHJcblxyXG5cclxuXHJcbmRlc2NyaWJlKFwiZ3VscEZ1bmN0aW9uXCIsZnVuY3Rpb24oKXtcclxuICAgIGl0KFwic2hvdWxkIHJ1biB0aHJvdWdoIHNtb290aGx5IHdpdGggXCIgKyBcIidmb3JFYWNoJ1wiLmJsdWUsZnVuY3Rpb24oZG9uZSl7XHJcbiAgICAgICAgZ3VscC5zcmMoJy4vdGVzdC8qLm1kJylcclxuICAgICAgICAgICAgLnBpcGUoZ3VscEZ1bmN0aW9uKG15RnVuY3Rpb24sJ2ZvckVhY2gnKSlcclxuICAgICAgICAgICAgLnBpcGUoZ3VscC5kZXN0KFwiLi90ZXN0L3Jlc3VsdC9cIikpO1xyXG5cclxuICAgICAgICBndWxwLnNyYygnLi90ZXN0LyoubWQnKVxyXG4gICAgICAgICAgICAucGlwZShndWxwRnVuY3Rpb24oW215RnVuY3Rpb24yLG15RnVuY3Rpb24zXSwnZm9yRWFjaCcpKVxyXG4gICAgICAgICAgICAucGlwZShndWxwLmRlc3QoXCIuL3Rlc3QvcmVzdWx0L1wiKSlcclxuICAgICAgICAgICAgLnBpcGUoZ3VscEZ1bmN0aW9uKGRvbmUsXCJhdEVuZFwiKSk7XHJcblxyXG4gICAgfSk7XHJcblxyXG4gICAgaXQoXCJzaG91bGQgcnVuIHRocm91Z2ggc21vb3RobHkgd2l0aCBcIiArIFwiJ2F0RW5kJ1wiLmJsdWUsZnVuY3Rpb24oZG9uZSl7XHJcbiAgICAgICAgZ3VscC5zcmMoJy4vdGVzdC8qLm1kJylcclxuICAgICAgICAgICAgLnBpcGUoZ3VscEZ1bmN0aW9uKG15RnVuY3Rpb24sJ2F0RW5kJykpXHJcbiAgICAgICAgICAgIC5waXBlKGd1bHAuZGVzdChcIi4vdGVzdC9yZXN1bHQvXCIpKTtcclxuXHJcbiAgICAgICAgZ3VscC5zcmMoJy4vdGVzdC8qLm1kJylcclxuICAgICAgICAgICAgLnBpcGUoZ3VscEZ1bmN0aW9uKFtteUZ1bmN0aW9uMixteUZ1bmN0aW9uM10sJ2F0RW5kJykpXHJcbiAgICAgICAgICAgIC5waXBlKGd1bHAuZGVzdChcIi4vdGVzdC9yZXN1bHQvXCIpKVxyXG4gICAgICAgICAgICAucGlwZShndWxwRnVuY3Rpb24oZG9uZSxcImF0RW5kXCIpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGl0KFwic2hvdWxkIHJ1biB0aHJvdWdoIHNtb290aGx5IG9uY2Ugd2l0aCBcIiArIFwiJ2F0Rmlyc3QnXCIuYmx1ZSxmdW5jdGlvbihkb25lKXtcclxuXHJcbiAgICAgICAgZ3VscC5zcmMoJy4vdGVzdC8qLm1kJylcclxuICAgICAgICAgICAgLnBpcGUoZ3VscEZ1bmN0aW9uKFtteUZ1bmN0aW9uMixteUZ1bmN0aW9uM10sJ2ZvckZpcnN0JykpXHJcbiAgICAgICAgICAgIC5waXBlKGd1bHAuZGVzdChcIi4vdGVzdC9yZXN1bHQvXCIpKVxyXG4gICAgICAgICAgICAucGlwZShndWxwRnVuY3Rpb24oZG9uZSxcImF0RW5kXCIpKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGl0KFwic2hvdWxkIHJ1biBpbiBvcmRlclwiLGZ1bmN0aW9uKGRvbmUpe1xyXG4gICAgICAgIHRoaXMudGltZW91dCg1MDAwKTtcclxuICAgICAgICBsZXQgc3RyZWFtID0gZ3VscC5zcmMoJy4vdGVzdC8qLm1kJylcclxuICAgICAgICAgICAgLnBpcGUoZ3VscEZ1bmN0aW9uKFtiZWZvcmVGdW5jdGlvbixtaWRkbGVGdW5jdGlvbixtaWRkbGVGdW5jdGlvbl0sJ2F0RW5kJykpXHJcbiAgICAgICAgICAgIC5waXBlKGd1bHBGdW5jdGlvbihmdW5jdGlvbigpe1xyXG4gICAgICAgICAgICAgICAgYmVhdXR5bG9nLmxvZyhcInN0cmVhbSBwcm9ncmVzc2VkXCIpO1xyXG4gICAgICAgICAgICAgICAgdmFyIGRvbmUyID0gUS5kZWZlcigpO1xyXG4gICAgICAgICAgICAgICAgZG9uZTIucmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRvbmUyLnByb21pc2U7XHJcbiAgICAgICAgICAgIH0sXCJmb3JFYWNoXCIpKVxyXG4gICAgICAgICAgICAucGlwZShndWxwRnVuY3Rpb24oZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgIGJlYXV0eWxvZy5sb2coXCJuZXh0U3RlcFwiKTtcclxuICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIC5waXBlKGd1bHBGdW5jdGlvbihhZnRlckZ1bmN0aW9uLFwiYXRFbmRcIikpXHJcbiAgICAgICAgICAgIC5waXBlKGd1bHBGdW5jdGlvbih0aW1lb3V0RnVuY3Rpb24sXCJhdEVuZFwiKSk7XHJcblxyXG4gICAgICAgIHN0cmVhbS5vbihcImZpbmlzaFwiLGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgIGJlYXV0eWxvZy5pbmZvKFwic3RyZWFtIGZpbmlzaGVkXCIpO1xyXG4gICAgICAgICAgICBkb25lKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxufSk7XHJcblxyXG4iXX0=
|