This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
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.
99 lines
3.5 KiB
99 lines
3.5 KiB
var assert = require('assert'); |
|
var path = require('path'); |
|
var fs = require('fs'); |
|
var util = require('util'); |
|
|
|
var temp = require('../lib/temp'); |
|
temp.track(); |
|
|
|
var existsSync = function(path){ |
|
try { |
|
fs.statSync(path); |
|
return true; |
|
} catch (e){ |
|
return false; |
|
} |
|
}; |
|
|
|
// Use path.exists for 0.6 if necessary |
|
var safeExists = fs.exists || path.exists; |
|
|
|
var mkdirFired = false; |
|
var mkdirPath = null; |
|
temp.mkdir('foo', function(err, tpath) { |
|
mkdirFired = true; |
|
assert.ok(!err, "temp.mkdir did not execute without errors"); |
|
assert.ok(path.basename(tpath).slice(0, 3) == 'foo', 'temp.mkdir did not use the prefix'); |
|
assert.ok(existsSync(tpath), 'temp.mkdir did not create the directory'); |
|
|
|
fs.writeFileSync(path.join(tpath, 'a file'), 'a content'); |
|
temp.cleanupSync(); |
|
assert.ok(!existsSync(tpath), 'temp.cleanupSync did not remove the directory'); |
|
|
|
mkdirPath = tpath; |
|
}); |
|
|
|
var openFired = false; |
|
var openPath = null; |
|
temp.open('bar', function(err, info) { |
|
openFired = true; |
|
assert.equal('object', typeof(info), "temp.open did not invoke the callback with the err and info object"); |
|
assert.equal('number', typeof(info.fd), 'temp.open did not invoke the callback with an fd'); |
|
fs.writeSync(info.fd, 'foo'); |
|
fs.closeSync(info.fd); |
|
assert.equal('string', typeof(info.path), 'temp.open did not invoke the callback with a path'); |
|
assert.ok(existsSync(info.path), 'temp.open did not create a file'); |
|
|
|
temp.cleanupSync(); |
|
assert.ok(!existsSync(info.path), 'temp.cleanupSync did not remove the file'); |
|
|
|
openPath = info.path; |
|
}); |
|
|
|
|
|
var stream = temp.createWriteStream('baz'); |
|
assert.ok(stream instanceof fs.WriteStream, 'temp.createWriteStream did not invoke the callback with the err and stream object'); |
|
stream.write('foo'); |
|
stream.end("More text here\nand more..."); |
|
assert.ok(existsSync(stream.path), 'temp.createWriteStream did not create a file'); |
|
|
|
var tempDir = temp.mkdirSync("foobar"); |
|
assert.ok(existsSync(tempDir), 'temp.mkdirTemp did not create a directory'); |
|
|
|
// cleanupSync() |
|
temp.cleanupSync(); |
|
assert.ok(!existsSync(stream.path), 'temp.cleanupSync did not remove the createWriteStream file'); |
|
assert.ok(!existsSync(tempDir), 'temp.cleanupSync did not remove the mkdirSync directory'); |
|
|
|
// cleanup() |
|
var cleanupFired = false; |
|
// Make a temp file just to cleanup |
|
var tempFile = temp.openSync(); |
|
fs.writeSync(tempFile.fd, 'foo'); |
|
fs.closeSync(tempFile.fd); |
|
assert.ok(existsSync(tempFile.path), 'temp.openSync did not create a file for cleanup'); |
|
|
|
// run cleanup() |
|
temp.cleanup(function(err, counts) { |
|
cleanupFired = true; |
|
assert.ok(!err, 'temp.cleanup did not run without encountering an error'); |
|
assert.ok(!existsSync(tempFile.path), 'temp.cleanup did not remove the openSync file for cleanup'); |
|
assert.equal(1, counts.files, 'temp.cleanup did not report the correct removal statistics'); |
|
}); |
|
|
|
var tempPath = temp.path(); |
|
assert.ok(path.dirname(tempPath) === temp.dir, "temp.path does not work in default os temporary directory"); |
|
|
|
tempPath = temp.path({dir: process.cwd()}); |
|
assert.ok(path.dirname(tempPath) === process.cwd(), "temp.path does not work in user-provided temporary directory"); |
|
|
|
for (var i=0; i <= 10; i++) { |
|
temp.openSync(); |
|
} |
|
assert.equal(process.listeners('exit').length, 1, 'temp created more than one listener for exit'); |
|
|
|
process.addListener('exit', function() { |
|
assert.ok(mkdirFired, "temp.mkdir callback did not fire"); |
|
assert.ok(openFired, "temp.open callback did not fire"); |
|
assert.ok(cleanupFired, "temp.cleanup callback did not fire"); |
|
});
|
|
|