Enable linting for the test directory. A number of changes was made so all tests conform the current rules used by lib and src directories. The only exception for tests is that unreachable (dead) code is allowed. test-fs-non-number-arguments-throw had to be excluded from the changes because of a weird issue on Windows CI. PR-URL: https://github.com/nodejs/io.js/pull/1721 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
78 lines
1.9 KiB
JavaScript
78 lines
1.9 KiB
JavaScript
'use strict';
|
|
var assert = require('assert');
|
|
var util = require('util');
|
|
var join = require('path').join;
|
|
var fs = require('fs');
|
|
var common = require('../common');
|
|
|
|
var repl = require('repl');
|
|
|
|
// A stream to push an array into a REPL
|
|
function ArrayStream() {
|
|
this.run = function(data) {
|
|
var self = this;
|
|
data.forEach(function(line) {
|
|
self.emit('data', line + '\n');
|
|
});
|
|
};
|
|
}
|
|
util.inherits(ArrayStream, require('stream').Stream);
|
|
ArrayStream.prototype.readable = true;
|
|
ArrayStream.prototype.writable = true;
|
|
ArrayStream.prototype.resume = function() {};
|
|
ArrayStream.prototype.write = function() {};
|
|
|
|
var works = [['inner.one'], 'inner.o'];
|
|
|
|
var putIn = new ArrayStream();
|
|
var testMe = repl.start('', putIn);
|
|
|
|
|
|
var testFile = [
|
|
'var top = function() {',
|
|
'var inner = {one:1};'
|
|
];
|
|
var saveFileName = join(common.tmpDir, 'test.save.js');
|
|
|
|
// input some data
|
|
putIn.run(testFile);
|
|
|
|
// save it to a file
|
|
putIn.run(['.save ' + saveFileName]);
|
|
|
|
// the file should have what I wrote
|
|
assert.equal(fs.readFileSync(saveFileName, 'utf8'), testFile.join('\n') + '\n');
|
|
|
|
// make sure that the REPL data is "correct"
|
|
// so when I load it back I know I'm good
|
|
testMe.complete('inner.o', function(error, data) {
|
|
assert.deepEqual(data, works);
|
|
});
|
|
|
|
// clear the REPL
|
|
putIn.run(['.clear']);
|
|
|
|
// Load the file back in
|
|
putIn.run(['.load ' + saveFileName]);
|
|
|
|
// make sure that the REPL data is "correct"
|
|
testMe.complete('inner.o', function(error, data) {
|
|
assert.deepEqual(data, works);
|
|
});
|
|
|
|
// clear the REPL
|
|
putIn.run(['.clear']);
|
|
|
|
var loadFile = join(common.tmpDir, 'file.does.not.exist');
|
|
|
|
// should not break
|
|
putIn.write = function(data) {
|
|
// make sure I get a failed to load message and not some crazy error
|
|
assert.equal(data, 'Failed to load:' + loadFile + '\n');
|
|
// eat me to avoid work
|
|
putIn.write = function() {};
|
|
};
|
|
putIn.run(['.load ' + loadFile]);
|
|
|
|
|
|
//TODO how do I do a failed .save test?
|