61 lines
2.4 KiB
JavaScript
61 lines
2.4 KiB
JavaScript
|
// if running on older node, ensure that es6-shim is loaded first
|
||
|
if (/^v0.10/.test(process.version)) { require('es6-shim'); }
|
||
|
var assert= require('../assert');
|
||
|
var fs = require('../fs');
|
||
|
var path = require('../path');
|
||
|
|
||
|
var TESTFILE = '/tmp/hello';
|
||
|
|
||
|
describe('fs module', function() {
|
||
|
it('write/read/unlink (callbacks)', function(done) {
|
||
|
fs.exists(TESTFILE, function(exists) {
|
||
|
if (exists) {
|
||
|
return done("Pre-existing file "+TESTFILE+"; aborting test.");
|
||
|
}
|
||
|
fs.writeFile(TESTFILE, 'hello', 'utf-8', function(err) {
|
||
|
if (err) { return done(err); }
|
||
|
fs.exists(TESTFILE, function(exists) {
|
||
|
if (!exists) {
|
||
|
return done(TESTFILE+" not found");
|
||
|
}
|
||
|
fs.readFile(TESTFILE, 'utf-8', function(err, contents) {
|
||
|
if (err) { return done(err); }
|
||
|
if (contents !== 'hello') {
|
||
|
return done("File contents are not right");
|
||
|
}
|
||
|
fs.unlink(TESTFILE, function(err) {
|
||
|
if (err) { return done(err); }
|
||
|
fs.exists(TESTFILE, function(exists) {
|
||
|
if (exists) {
|
||
|
return done("unlink didn't work");
|
||
|
}
|
||
|
done(/*success!*/);
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
it('write/read/unlink (promises)', function() {
|
||
|
return fs.exists(TESTFILE).then(function(exists) {
|
||
|
assert.equal(!!exists, false,
|
||
|
"Pre-existing file "+TESTFILE+"; aborting test.");
|
||
|
}).then(function() {
|
||
|
return fs.writeFile(TESTFILE, 'hello', 'utf-8');
|
||
|
}).then(function() {
|
||
|
return fs.exists(TESTFILE);
|
||
|
}).then(function(exists) {
|
||
|
assert.equal(!!exists, true);
|
||
|
return fs.readFile(TESTFILE, 'utf-8');
|
||
|
}).then(function(contents) {
|
||
|
assert.equal(contents, 'hello');
|
||
|
return fs.unlink(TESTFILE);
|
||
|
}).then(function() {
|
||
|
return fs.exists(TESTFILE);
|
||
|
}).then(function(exists) {
|
||
|
assert.equal(!!exists, false);
|
||
|
});
|
||
|
});
|
||
|
});
|