gulp-expect-file
Expectation on generated files for gulp 3/4
This plugin is intended for testing other gulp plugin.
Usage
First, install gulp-expect-file
as a development dependency:
npm install --save-dev gulp-expect-file
Then, add it to your gulpfile.js
:
var expect = require("gulp-expect-file");
gulp.task("copy", function() {
gulp
.src(["src/foo.txt"])
.pipe(gulp.dest("dest/"))
.pipe(expect("dest/foo.txt"));
});
API
expect(expectation)
expectation
Type: String
, Array
, Object
or Function
It describes the expectation of files on pipe.
expectation | meaning |
---|
"foo.txt" | Expects foo.txt on pipe |
"*.txt" | Expects any files matching glob *.txt on pipe |
["a.txt", "b.txt"] | Expects a.txt and b.txt both on pipe |
{"a.txt": true, "b.txt": true} | Expects a.txt and b.txt both on pipe (same as above) |
{"foo.txt": "text"} | Expects foo.txt with contents that has "text" as substring |
{"foo.txt": /pattern/} | Expects foo.txt with contents that matches /pattern/ |
function (file) { ... } | Call the tester function for each file on pipe |
{"foo.txt": function (file) { ... }} | Call the tester function for foo.txt |
A tester function is called with vinyl File object of target file.
It can return true
, null
, undefined
for passing that file. false
, String
of error message, or any other value will fail testing on that file.
Sync version:
function (file) {
return /\.txt$/.test(file.path);
}
Async version:
function (file, callback) {
process.nextTick(function () {
if (/\.txt$/.test(file.path)) {
callback('not txt file');
} else {
callback();
}
});
}
expect(options, expectation)
options.reportUnexpected
Type: Boolean
Default: true
If true, files not matching any expectation will be reported as failure.
For example, if a.txt
and b.txt
are on the pipe, expect(['a.txt'])
will report that b.txt
is unexpected.
gulp.src(["a.txt", "b.txt"]).pipe(expect(["a.txt"]));
options.reportMissing
Type: Boolean
Default: true
If true, expected files that are not on the pipe will be reported as failure.
For example, if a.txt
is on the pipe, expect(['a.txt', 'b.txt'])
will report that b.txt
is missing.
gulp.src(["a.txt"]).pipe(expect(["a.txt", "b.txt"]));
options.checkRealFile
Type: Boolean
Default: false
If true, it also checks if the real file exists on the file system by fs.exists()
.
gulp
.src(["exist.txt", "nonexist.txt"])
.pipe(expect({ checkRealFile: true }, "*.txt"));
options.errorOnFailure
Type: Boolean
Default: false
If true, it emits error
event when expectations got failed.
gulp
.src(["a.txt"])
.pipe(expect({ errorOnFailure: true }, ["b.txt"]))
.on("error", function(err) {
console.error(err);
});
options.silent
Type: Boolean
Default: false
If true, it does not report any results.
options.verbose
Type: Boolean
Default: false
If true, it reports files that passed the expectation.
expect.real([options,] expectation)
This is just a shortcut for expect({ checkRealFile: true }, expectation)
.