Skip to content

Commit da1c8c2

Browse files
committed
restore NR loading strategy
1 parent 1cccfd1 commit da1c8c2

1 file changed

Lines changed: 22 additions & 18 deletions

File tree

index.js

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,13 @@ function findRuntimePath() {
3838
if (upPkg.pkg.name === 'node-red') {
3939
return path.join(path.dirname(upPkg.path), upPkg.pkg.main);
4040
}
41-
// case 2: NR is installed alongside node-red-node-test-helper
42-
if ((upPkg.pkg.dependencies && upPkg.pkg.dependencies['node-red'])
43-
|| (upPkg.pkg.devDependencies && upPkg.pkg.devDependencies['node-red'])) {
41+
// case 2: NR is resolvable from here
42+
try {
43+
return require.resolve('node-red');
44+
} catch (ignored) {}
45+
// case 3: NR is installed alongside node-red-node-test-helper
46+
if ((upPkg.pkg.dependencies && upPkg.pkg.dependencies['node-red']) ||
47+
(upPkg.pkg.devDependencies && upPkg.pkg.devDependencies['node-red'])) {
4448
const dirpath = path.join(path.dirname(upPkg.path), 'node_modules', 'node-red');
4549
try {
4650
const pkg = require(path.join(dirpath, 'package.json'));
@@ -52,12 +56,12 @@ function findRuntimePath() {
5256
class NodeTestHelper extends EventEmitter {
5357
constructor() {
5458
super();
55-
59+
5660
this._sandbox = sinon.createSandbox();
57-
61+
5862
this._address = '127.0.0.1';
5963
this._listenPort = 0; // ephemeral
60-
64+
6165
this.init();
6266
}
6367

@@ -86,7 +90,7 @@ class NodeTestHelper extends EventEmitter {
8690
apply: (target, thisArg, args) => {
8791
const retval = Reflect.apply(target, thisArg, args);
8892
process.nextTick(function(call) { return () => {
89-
NodePrototype.emit.call(thisArg, `call:${methodName}`, call);
93+
NodePrototype.emit.call(thisArg, `call:${methodName}`, call);
9094
}}(spy.lastCall));
9195
return retval;
9296
}
@@ -122,7 +126,7 @@ class NodeTestHelper extends EventEmitter {
122126
}
123127

124128
var storage = {
125-
getFlows: function() {
129+
getFlows: function () {
126130
return when.resolve({flows:testFlow,credentials:testCredentials});
127131
}
128132
};
@@ -136,17 +140,17 @@ class NodeTestHelper extends EventEmitter {
136140
};
137141

138142
Object.keys(this._RED).filter(prop => !/^(init|start|stop)$/.test(prop))
139-
.forEach(prop => {
140-
const propDescriptor = Object.getOwnPropertyDescriptor(this._RED, prop);
141-
Object.defineProperty(red, prop, propDescriptor);
142-
});
143+
.forEach(prop => {
144+
const propDescriptor = Object.getOwnPropertyDescriptor(this._RED, prop);
145+
Object.defineProperty(red, prop, propDescriptor);
146+
});
143147

144148
const redNodes = this._redNodes;
145149
redNodes.init({
146150
events: this._events,
147151
settings: settings,
148-
storage:storage,
149-
log:this._log
152+
storage: storage,
153+
log: this._log
150154
});
151155
redNodes.registerType("helper", function (n) {
152156
redNodes.createNode(this, n);
@@ -198,8 +202,8 @@ class NodeTestHelper extends EventEmitter {
198202

199203
startServer(done) {
200204
this._app = express();
201-
const server = stoppable(http.createServer((req,res) => {
202-
this._app(req,res);
205+
const server = stoppable(http.createServer((req, res) => {
206+
this._app(req, res);
203207
}), 0);
204208

205209
this._RED.init(server, {
@@ -224,7 +228,7 @@ class NodeTestHelper extends EventEmitter {
224228
// internal API
225229
this._comms.stop();
226230
this._server.stop(done);
227-
} catch(e) {
231+
} catch (e) {
228232
done();
229233
}
230234
} else {
@@ -234,4 +238,4 @@ class NodeTestHelper extends EventEmitter {
234238
}
235239

236240
module.exports = new NodeTestHelper();
237-
module.exports.NodeTestHelper = NodeTestHelper;
241+
module.exports.NodeTestHelper = NodeTestHelper;

0 commit comments

Comments
 (0)