The copyright and license notice is already in the LICENSE file. There is no justifiable reason to also require that it be included in every file, since the individual files are not individually distributed except as part of the entire package.
59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
var assert = require('assert');
|
|
var util = require('util');
|
|
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 putIn = new ArrayStream;
|
|
var testMe = repl.start('', putIn, null, true);
|
|
|
|
test1();
|
|
|
|
function test1(){
|
|
var gotWrite = false;
|
|
putIn.write = function (data) {
|
|
gotWrite = true;
|
|
if (data.length) {
|
|
|
|
// inspect output matches repl output
|
|
assert.equal(data, util.inspect(require('fs'), null, 2, false) + '\n');
|
|
// globally added lib matches required lib
|
|
assert.equal(global.fs, require('fs'));
|
|
test2();
|
|
}
|
|
};
|
|
assert(!gotWrite);
|
|
putIn.run(['fs']);
|
|
assert(gotWrite);
|
|
}
|
|
|
|
function test2(){
|
|
var gotWrite = false;
|
|
putIn.write = function(data) {
|
|
gotWrite = true;
|
|
if (data.length) {
|
|
// repl response error message
|
|
assert.equal(data, '{}\n');
|
|
// original value wasn't overwritten
|
|
assert.equal(val, global.url);
|
|
}
|
|
};
|
|
var val = {};
|
|
global.url = val;
|
|
assert(!gotWrite);
|
|
putIn.run(['url']);
|
|
assert(gotWrite);
|
|
}
|