Skip to content

Commit

Permalink
test: move ArrayStream to common
Browse files Browse the repository at this point in the history
A number of REPL tests define the same ArrayStream object. This
commit moves the repeated code into common.js.

PR-URL: #4027
Reviewed-By: Ben Noordhuis <[email protected]>
  • Loading branch information
cjihrig authored and rvagg committed Dec 5, 2015
1 parent d94a70e commit 69c95bb
Show file tree
Hide file tree
Showing 11 changed files with 40 additions and 114 deletions.
20 changes: 20 additions & 0 deletions test/common.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ var fs = require('fs');
var assert = require('assert');
var os = require('os');
var child_process = require('child_process');
const stream = require('stream');
const util = require('util');


exports.testDir = path.dirname(__filename);
Expand Down Expand Up @@ -449,3 +451,21 @@ exports.fileExists = function(pathname) {
exports.fail = function(msg) {
assert.fail(null, null, msg);
};


// A stream to push an array into a REPL
function ArrayStream() {
this.run = function(data) {
data.forEach(line => {
this.emit('data', line + '\n');
});
};
}

util.inherits(ArrayStream, stream.Stream);
exports.ArrayStream = ArrayStream;
ArrayStream.prototype.readable = true;
ArrayStream.prototype.writable = true;
ArrayStream.prototype.pause = function() {};
ArrayStream.prototype.resume = function() {};
ArrayStream.prototype.write = function() {};
17 changes: 1 addition & 16 deletions test/parallel/test-repl-.save.load.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,24 +9,9 @@ common.refreshTmpDir();

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();
const putIn = new common.ArrayStream();
var testMe = repl.start('', putIn);


Expand Down
20 changes: 4 additions & 16 deletions test/parallel/test-repl-autolibs.js
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
/* eslint-disable required-modules */
'use strict';
const common = require('../common');
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() {};
// This test adds global variables
common.globalCheck = false;

var putIn = new ArrayStream();
const putIn = new common.ArrayStream();
var testMe = repl.start('', putIn, null, true);

test1();
Expand Down
7 changes: 2 additions & 5 deletions test/parallel/test-repl-console.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
'use strict';
var common = require('../common'),
assert = require('assert'),
Stream = require('stream'),
repl = require('repl');

// create a dummy stream that does nothing
var stream = new Stream();
stream.write = stream.pause = stream.resume = function() {};
stream.readable = stream.writable = true;
// Create a dummy stream that does nothing
const stream = new common.ArrayStream();

var r = repl.start({
input: stream,
Expand Down
17 changes: 1 addition & 16 deletions test/parallel/test-repl-domain.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,7 @@ var common = require('../common');
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();
const putIn = new common.ArrayStream();
var testMe = repl.start('', putIn);

putIn.write = function(data) {
Expand Down
7 changes: 2 additions & 5 deletions test/parallel/test-repl-end-emits-exit.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
'use strict';
var common = require('../common'),
assert = require('assert'),
Stream = require('stream'),
repl = require('repl'),
terminalExit = 0,
regularExit = 0;

// create a dummy stream that does nothing
var stream = new Stream();
stream.write = stream.pause = stream.resume = function() {};
stream.readable = stream.writable = true;
// Create a dummy stream that does nothing
const stream = new common.ArrayStream();

function testTerminalMode() {
var r1 = repl.start({
Expand Down
7 changes: 2 additions & 5 deletions test/parallel/test-repl-options.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
'use strict';
var common = require('../common'),
assert = require('assert'),
Stream = require('stream'),
repl = require('repl');

common.globalCheck = false;

// create a dummy stream that does nothing
var stream = new Stream();
stream.write = stream.pause = stream.resume = function() {};
stream.readable = stream.writable = true;
// Create a dummy stream that does nothing
const stream = new common.ArrayStream();

// 1, mostly defaults
var r1 = repl.start({
Expand Down
7 changes: 2 additions & 5 deletions test/parallel/test-repl-reset-event.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,9 @@ common.globalCheck = false;

var assert = require('assert');
var repl = require('repl');
var Stream = require('stream');

// create a dummy stream that does nothing
var dummy = new Stream();
dummy.write = dummy.pause = dummy.resume = function() {};
dummy.readable = dummy.writable = true;
// Create a dummy stream that does nothing
const dummy = new common.ArrayStream();

function testReset(cb) {
var r = repl.start({
Expand Down
16 changes: 2 additions & 14 deletions test/parallel/test-repl-syntax-error-stack.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,24 +11,12 @@ process.on('exit', () => {
assert.strictEqual(found, true);
});

// A stream to push an array into a REPL
function ArrayStream() {
this.run = function(data) {
data.forEach(line => {
this.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(output) {
common.ArrayStream.prototype.write = function(output) {
if (/var foo bar;/.test(output))
found = true;
};

const putIn = new ArrayStream();
const putIn = new common.ArrayStream();
const testMe = repl.start('', putIn);
let file = path.resolve(__dirname, '../fixtures/syntax/bad_syntax');

Expand Down
19 changes: 3 additions & 16 deletions test/parallel/test-repl-tab-complete-crash.js
Original file line number Diff line number Diff line change
@@ -1,32 +1,19 @@
'use strict';

require('../common');
const common = require('../common');
const assert = require('assert');
const util = require('util');
const repl = require('repl');

var referenceErrorCount = 0;

// A stream to push an array into a REPL
function ArrayStream() {
this.run = function(data) {
const 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(msg) {
common.ArrayStream.prototype.write = function(msg) {
if (msg.startsWith('ReferenceError: ')) {
referenceErrorCount++;
}
};

const putIn = new ArrayStream();
const putIn = new common.ArrayStream();
const testMe = repl.start('', putIn);

// https://github.com/nodejs/node/issues/3346
Expand Down
17 changes: 1 addition & 16 deletions test/parallel/test-repl-tab-complete.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,8 @@ process.on('exit', function() {
assert.strictEqual(referenceErrors, expectedReferenceErrors);
});

// 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();
const putIn = new common.ArrayStream();
var testMe = repl.start('', putIn);

// Some errors are passed to the domain, but do not callback
Expand Down

0 comments on commit 69c95bb

Please sign in to comment.