You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.3 KiB

var chmodr = require("../")
, test = require("tap").test
, mkdirp = require("mkdirp")
, rimraf = require("rimraf")
, fs = require("fs")
, dirs = []
rimraf("/tmp/chmodr", function (er) {
if (er) throw er
var cnt = 5
for (var i = 0; i < 5; i ++) {
mkdirp(getDir(), then)
}
function then (er) {
if (er) throw er
if (-- cnt === 0) {
runTest()
}
}
})
function getDir () {
var dir = "/tmp/chmodr"
dir += "/" + Math.floor(Math.random() * Math.pow(16,4)).toString(16)
dirs.push(dir)
dir += "/" + Math.floor(Math.random() * Math.pow(16,4)).toString(16)
dirs.push(dir)
dir += "/" + Math.floor(Math.random() * Math.pow(16,4)).toString(16)
dirs.push(dir)
return dir
}
function runTest () {
test("should complete successfully", function (t) {
console.error("calling chmodr 0700")
chmodr("/tmp/chmodr", 0700, function (er) {
t.ifError(er)
t.end()
})
})
dirs.forEach(function (dir) {
test("verify "+dir, function (t) {
fs.stat(dir, function (er, st) {
if (er) {
t.ifError(er)
return t.end()
}
t.equal(st.mode & 0777, 0700, "mode should be 0700")
t.end()
})
})
})
test("cleanup", function (t) {
rimraf("/tmp/chmodr/", function (er) {
t.ifError(er)
t.end()
})
})
}