nak
Version:
ack and ag inspired tool written in Node. Designed to be fast.
106 lines (72 loc) • 3.52 kB
JavaScript
"mocha";
var Assert = require("assert");
var Exec = require("child_process").exec;
var basePath = __dirname + "/filelist_fixtures";
var nakPath = "node bin/nak";
//var nakPath = "node build/nak.min";
var parseOutput = require("./test_helpers").parseOutput;
describe("filelist", function() {
it("should get filelist, including hidden files and binaries", function(next) {
Exec(nakPath + " -l -H -a ../.nakignore " + basePath, function(err, stdout, stderr) {
var output = parseOutput(err, stdout, stderr);
var lines = output.lines;
var files = lines.filter(function(file) { return !!file; }).sort();
Assert.equal(files.length, 14);
Assert.equal(files[8], basePath + "/level1/Toasty.gif");
Assert.equal(files[9], basePath + "/level1/level2/.hidden");
Assert.equal(files[10], basePath + "/level1/level2/.level3a/.hidden");
next();
});
});
it("should get filelist, including symlinks, hidden files, and binaries", function(next) {
Exec(nakPath + " -l -H -a ../.nakignore -f " + basePath, function(err, stdout, stderr) {
var output = parseOutput(err, stdout, stderr);
var lines = output.lines;
var files = lines.filter(function(file) { return !!file; }).sort();
Assert.equal(files.length, 15);
Assert.equal(files[14], basePath + "/symlink-to-1.txt");
next();
});
});
it("should get filelist, without hidden files", function(next) {
Exec(nakPath + " -l -a ../.nakignore " + basePath, function(err, stdout, stderr) {
var output = parseOutput(err, stdout, stderr);
var lines = output.lines;
var files = lines.filter(function(file) { return !!file; }).sort();
Assert.equal(files[3], basePath + "/level1/level2/level2.rb");
Assert.equal(files[4], basePath + "/level1/level2/level3/level4/level4.txt");
next();
});
});
it("ignores symlinks to files/folders that don't exist", function(next) {
Exec(nakPath + " -f -l -a ../.nakignore -G symlink-to-nowhere.txt " + basePath, function(err, stdout, stderr) {
var output = parseOutput(err, stdout, stderr);
var lines = output.lines;
var files = lines.filter(function(file) { return !!file; }).sort();
Assert.equal(files.length, 0);
next();
});
});
it("should get filelist, even for a starting hidden dir", function(next) {
Exec(nakPath + " -l -a ../.nakignore " + basePath + "/.root", function(err, stdout, stderr) {
var output = parseOutput(err, stdout, stderr);
var lines = output.lines;
var files = lines.filter(function(file) { return !!file; }).sort();
Assert.equal(files.length, 5);
Assert.equal(files[2], basePath + "/.root/p.txt");
Assert.equal(files[4], basePath + "/.root/subdir/foo.js");
next();
});
});
it("should get filelist, and hidden files, even for a starting hidden dir", function(next) {
Exec(nakPath + " -l -a ../.nakignore --hidden " + basePath + "/.root", function(err, stdout, stderr) {
var output = parseOutput(err, stdout, stderr);
var lines = output.lines;
var files = lines.filter(function(file) { return !!file; }).sort();
Assert.equal(files.length, 6);
Assert.equal(files[2], basePath + "/.root/p.txt");
Assert.equal(files[5], basePath + "/.root/subdir/foo.js");
next();
});
});
});