Skip to content

Commit 5542238

Browse files
committed
helper.load: add ability to define user settings
When a `Node` has certain behavior based on user settings (e.g. `RED.settings.email`), we can test it by passing extra settings as a parameter into `helper.load`. This change is backwards-compatible, but the API isn't awesome. 5 params is too many.
1 parent da1c8c2 commit 5542238

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

index.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class NodeTestHelper extends EventEmitter {
108108
}
109109
}
110110

111-
load(testNode, testFlow, testCredentials, cb) {
111+
load(testNode, testFlow, testCredentials, testSettings, cb) {
112112
const log = this._log;
113113
const logSpy = this._logSpy = this._sandbox.spy(log, 'log');
114114
logSpy.FATAL = log.FATAL;
@@ -120,9 +120,13 @@ class NodeTestHelper extends EventEmitter {
120120
logSpy.METRIC = log.METRIC;
121121
this.log = () => logSpy;
122122

123-
if (typeof testCredentials === 'function') {
123+
if (typeof testSettings === 'function') {
124+
cb = testSettings;
125+
testSettings = {};
126+
} else if (typeof testCredentials === 'function') {
124127
cb = testCredentials;
125128
testCredentials = {};
129+
testSettings = {};
126130
}
127131

128132
var storage = {
@@ -131,9 +135,9 @@ class NodeTestHelper extends EventEmitter {
131135
}
132136
};
133137

134-
var settings = {
138+
const settings = Object.assign({
135139
available: function() { return false; }
136-
};
140+
}, testSettings || {});
137141

138142
var red = {
139143
_: v => v
@@ -145,6 +149,7 @@ class NodeTestHelper extends EventEmitter {
145149
Object.defineProperty(red, prop, propDescriptor);
146150
});
147151

152+
red.settings = testSettings || {};
148153
const redNodes = this._redNodes;
149154
redNodes.init({
150155
events: this._events,

0 commit comments

Comments
 (0)