This file is automatically generated by the script test/specs_diff.py
to compare the specification compliance of EdgeLink and Node-RED nodes.
Status | Spec Test |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
❌ | inject node post should fail for invalid node |
❌ | inject node post should inject custom properties in posted message |
❌ | inject node post should inject message |
❌ | inject node sets the value of flow context property |
❌ | inject node sets the value of global context property |
❌ | inject node sets the value of persistable flow & global context property |
❌ | inject node sets the value of persistable flow context property |
❌ | inject node sets the value of persistable global context property |
❌ | inject node sets the value of two persistable flow context property |
❌ | inject node sets the value of two persistable global context property |
❌ | inject node sets the value of two persistable global context property |
❌ | inject node should inject custom properties in message |
❌ | inject node should report invalid JSONata expression |
Status | Spec Test |
---|---|
✅ |
Status | Spec Test |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
❌ | link Node link-call node should not raise error after deploying a name change to a duplicate link-in node |
❌ | link Node link-call node should raise error due to multiple targets on different tabs |
❌ | link Node link-call node should raise error due to multiple targets on same tab |
❌ | link Node link-call node should timeout waiting for link return |
Status | Spec Test |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
❌ | function node Logger should catch thrown number |
❌ | function node Logger should catch thrown object (bad practice) |
❌ | function node Logger should catch thrown string |
❌ | function node Logger should log a Debug Message |
❌ | function node Logger should log a Debug Message - initialise |
❌ | function node Logger should log a Trace Message |
❌ | function node Logger should log a Trace Message - initialise |
❌ | function node Logger should log a Warning Message |
❌ | function node Logger should log a Warning Message - initialise |
❌ | function node Logger should log an Error Message |
❌ | function node Logger should log an Error Message - initialise |
❌ | function node Logger should log an Info Message |
❌ | function node Logger should log an Info Message - initialise |
❌ | function node check if default function timeout settings are recognized |
❌ | function node externalModules should fail if module variable name clashes with sandbox builtin |
❌ | function node externalModules should fail if using OS module with functionExternalModules set to false |
❌ | function node externalModules should fail if using OS module without it listed in libs |
❌ | function node externalModules should require the OS module |
❌ | function node finalize function should allow accessing node.id and node.name and node.outputCount |
❌ | function node finalize function should execute |
❌ | function node init function should allow accessing node.id and node.name and node.outputCount and sending message |
❌ | function node init function should delay handling messages until init completes |
❌ | function node should be loaded |
❌ | function node should do something with the catch node |
❌ | function node should handle and log script error |
❌ | function node should handle error on get keys in persistable context |
❌ | function node should handle error on get persistable context |
❌ | function node should handle error on set persistable context |
❌ | function node should handle node.on() |
❌ | function node should set two persistable node context (single call, w callback) |
❌ | function node should timeout if timeout is set |
❌ | function node should use the same Date object from outside the sandbox |
Status | Spec Test |
---|---|
❌ | switch Node handles more than one switch statement |
❌ | switch Node sends a message when the "else/otherwise" statement is selected |
❌ | switch Node sends nothing when input is false and checking for true |
❌ | switch Node sends nothing when input is false and checking for true |
❌ | switch Node should be able to use $I in JSONata expression |
❌ | switch Node should be able to use $N in JSONata expression |
❌ | switch Node should be loaded with some defaults |
❌ | switch Node should check JSONata expression is true |
❌ | switch Node should check if input is indeed false |
❌ | switch Node should check if input is indeed not null |
❌ | switch Node should check if input is indeed null |
❌ | switch Node should check if input is indeed undefined |
❌ | switch Node should check if input is true |
❌ | switch Node should check if payload NOT equals given numeric value |
❌ | switch Node should check if payload NOT equals given value |
❌ | switch Node should check if payload contains given value |
❌ | switch Node should check if payload equals given numeric value |
❌ | switch Node should check if payload equals given value |
❌ | switch Node should check if payload if of type JSON string |
❌ | switch Node should check if payload if of type JSON string (and fail if not) |
❌ | switch Node should check if payload if of type array |
❌ | switch Node should check if payload if of type boolean false |
❌ | switch Node should check if payload if of type boolean true |
❌ | switch Node should check if payload if of type buffer |
❌ | switch Node should check if payload if of type null |
❌ | switch Node should check if payload if of type number |
❌ | switch Node should check if payload if of type number 0 |
❌ | switch Node should check if payload if of type number Infinity |
❌ | switch Node should check if payload if of type number NaN |
❌ | switch Node should check if payload if of type object |
❌ | switch Node should check if payload if of type string |
❌ | switch Node should check if payload if of type undefined |
❌ | switch Node should check if payload is between given string values |
❌ | switch Node should check if payload is between given values |
❌ | switch Node should check if payload is between given values in "wrong" order |
❌ | switch Node should check if payload is empty (0) |
❌ | switch Node should check if payload is empty (array) |
❌ | switch Node should check if payload is empty (buffer) |
❌ | switch Node should check if payload is empty (non-empty array) |
❌ | switch Node should check if payload is empty (non-empty buffer) |
❌ | switch Node should check if payload is empty (non-empty object) |
❌ | switch Node should check if payload is empty (non-empty string) |
❌ | switch Node should check if payload is empty (null) |
❌ | switch Node should check if payload is empty (object) |
❌ | switch Node should check if payload is empty (string) |
❌ | switch Node should check if payload is empty (undefined) |
❌ | switch Node should check if payload is greater than given value |
❌ | switch Node should check if payload is greater than/equals given value |
❌ | switch Node should check if payload is greater than/equals given value |
❌ | switch Node should check if payload is less than given value |
❌ | switch Node should check if payload is not between given values |
❌ | switch Node should check if payload is not empty (0) |
❌ | switch Node should check if payload is not empty (array) |
❌ | switch Node should check if payload is not empty (buffer) |
❌ | switch Node should check if payload is not empty (non-empty array) |
❌ | switch Node should check if payload is not empty (non-empty buffer) |
❌ | switch Node should check if payload is not empty (non-empty object) |
❌ | switch Node should check if payload is not empty (non-empty string) |
❌ | switch Node should check if payload is not empty (null) |
❌ | switch Node should check if payload is not empty (object) |
❌ | switch Node should check if payload is not empty (string) |
❌ | switch Node should check if payload is not empty (undefined) |
❌ | switch Node should check if payload less than equals given value |
❌ | switch Node should check input against a previous value |
❌ | switch Node should check input against a previous value (2nd option) |
❌ | switch Node should handle JSONata expression |
❌ | switch Node should handle empty rule |
❌ | switch Node should handle env var expression |
❌ | switch Node should handle flow and global contexts with JSONata expression |
❌ | switch Node should handle flow context |
❌ | switch Node should handle global context |
❌ | switch Node should handle invalid jsonata expression |
❌ | switch Node should handle persistable flow and global contexts with JSONata expression |
❌ | switch Node should handle persistable flow context |
❌ | switch Node should handle persistable global context |
❌ | switch Node should handle too many pending messages |
❌ | switch Node should match if a payload has a required property |
❌ | switch Node should match regex |
❌ | switch Node should match regex with ignore-case flag set true |
❌ | switch Node should not match if a payload does not have a required property |
❌ | switch Node should not match if the key is not a string |
❌ | switch Node should not match if the parent object does not exist - null |
❌ | switch Node should not match if the parent object does not exist - undefined |
❌ | switch Node should not match regex with ignore-case flag set false |
❌ | switch Node should not match regex with ignore-case flag unset |
❌ | switch Node should not repair message sequence for each port |
❌ | switch Node should repair message sequence for each port |
❌ | switch Node should repair message sequence for each port (overlap) |
❌ | switch Node should return nothing when the payload does equal to desired numeric value |
❌ | switch Node should return nothing when the payload does equal to desired string |
❌ | switch Node should return nothing when the payload doesn't contain desired string |
❌ | switch Node should return nothing when the payload doesn't contain desired string |
❌ | switch Node should return nothing when the payload doesn't equal to desired numeric value |
❌ | switch Node should return nothing when the payload doesn't equal to desired string |
❌ | switch Node should return nothing when the payload doesn't match regex |
❌ | switch Node should return nothing when the payload is not greater than desired string |
❌ | switch Node should return nothing when the payload is not greater than desired string |
❌ | switch Node should return nothing when the payload is not less than desired string |
❌ | switch Node should take head of message sequence (no repair) |
❌ | switch Node should take head of message sequence (repair) |
❌ | switch Node should take head of message sequence (w. JSONata) |
❌ | switch Node should take head of message sequence (w. context) |
❌ | switch Node should take slice of message sequence (no repair) |
❌ | switch Node should take slice of message sequence (repair) |
❌ | switch Node should take tail of message sequence (no repair) |
❌ | switch Node should take tail of message sequence (repair) |
❌ | switch Node should treat non-existant msg property conditional as undefined |
❌ | switch Node should use a nested message property to compare nested message property - matches |
❌ | switch Node should use a nested message property to compare nested message property - no match |
❌ | switch Node should use a nested message property to compare value - matches |
❌ | switch Node should use a nested message property to compare value - no match |
❌ | switch Node stops after first statement |
Status | Spec Test |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
❌ | change Node #change reports invalid fromValue |
❌ | change Node #change reports invalid regex |
❌ | change Node #set changes the value using flow context with jsonata |
❌ | change Node #set changes the value using global context with jsonata |
❌ | change Node #set changes the value using jsonata |
❌ | change Node #set changes the value using persistable flow context with jsonata |
❌ | change Node #set changes the value using persistable global context with jsonata |
❌ | change Node #set deep copies the property if selected |
❌ | change Node #set reports invalid jsonata expression |
❌ | change Node #set sets the value of a message property using a nested property in flow context |
Status | Spec Test |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
❌ | range Node should load some defaults |
Status | Spec Test |
---|---|
❌ | template node env var should modify payload from env variable |
❌ | template node should be able to overwrite msg.template using the template from msg.template |
❌ | template node should handle block contexts objects |
❌ | template node should handle deeper objects |
❌ | template node should handle escape characters in Mustache format and JSON output mode |
❌ | template node should handle if the field isn't set |
❌ | template node should handle missing node context |
❌ | template node should handle nested context tags - property not set |
❌ | template node should handle nested context tags - property set |
❌ | template node should modify flow context |
❌ | template node should modify global context |
❌ | template node should modify payload from flow context |
❌ | template node should modify payload from global context |
❌ | template node should modify payload from msg.template |
❌ | template node should modify payload from persistable flow & global context |
❌ | template node should modify payload from persistable flow context |
❌ | template node should modify payload from persistable global context |
❌ | template node should modify payload from two persistable flow context |
❌ | template node should modify payload from two persistable global context |
❌ | template node should modify payload in plain text mode |
❌ | template node should modify payload using node-configured template |
❌ | template node should modify persistable flow context |
❌ | template node should modify persistable global context |
❌ | template node should modify the configured property using msg.template |
❌ | template node should raise error if passed bad template |
Status | Spec Test |
---|---|
❌ | delay Node calls done when queue is flushed (queue/timed) |
❌ | delay Node calls done when queue is reset (queue/timed) |
❌ | delay Node calls done when queued message is cleared (type: delay) |
❌ | delay Node calls done when queued message is cleared (type: delayv) |
❌ | delay Node calls done when queued message is cleared (type: random) |
❌ | delay Node calls done when queued message is emitted (type: delay) |
❌ | delay Node calls done when queued message is emitted (type: delay) |
❌ | delay Node calls done when queued message is emitted (type: delayv) |
❌ | delay Node calls done when queued message is flushed (type: delay) |
❌ | delay Node calls done when queued message is flushed (type: delayv) |
❌ | delay Node calls done when queued message is flushed (type: random) |
❌ | delay Node calls done when queued messages are sent (queue) |
❌ | delay Node calls done when queued messages are sent (timed) |
❌ | delay Node calls done when rated message is emitted (drop: false) |
❌ | delay Node calls done when rated message is emitted (drop: true) |
❌ | delay Node calls done when rated message is flushed |
❌ | delay Node can flush delay queue |
❌ | delay Node can flush rate limit queue |
❌ | delay Node can full flush and reset rate limit queue |
❌ | delay Node can part flush and reset rate limit queue |
❌ | delay Node can part flush delay queue |
❌ | delay Node can part flush rate limit queue |
❌ | delay Node can part push to front of rate limit queue |
❌ | delay Node can reset delay queue |
❌ | delay Node can reset rate limit queue |
❌ | delay Node delays the message in days |
❌ | delay Node delays the message in days |
❌ | delay Node delays the message in hours |
❌ | delay Node delays the message in hours |
❌ | delay Node delays the message in milliseconds |
❌ | delay Node delays the message in minutes |
❌ | delay Node delays the message in seconds |
❌ | delay Node handles delay queue |
❌ | delay Node handles timed queue |
❌ | delay Node limits the message rate to 1 per 2 seconds |
❌ | delay Node limits the message rate to 1 per 2 seconds, 4 seconds, with drop |
❌ | delay Node limits the message rate to 1 per second |
❌ | delay Node limits the message rate to 1 per second, 4 seconds, with drop |
❌ | delay Node limits the message rate to 2 per second, 5 seconds, with drop |
❌ | delay Node limits the message rate to 2 per second, 5 seconds, with drop, 2nd output |
❌ | delay Node limits the message rate to 2 per seconds, 2 seconds |
❌ | delay Node limits the message rate using msg.rate |
❌ | delay Node limits the message rate with drop using msg.rate |
❌ | delay Node randomly delays the message in milliseconds |
❌ | delay Node randomly delays the message in minutes |
❌ | delay Node randomly delays the message in seconds |
❌ | delay Node should be able to set rate to hour |
❌ | delay Node should be able to set rate to minute |
❌ | delay Node should be loaded |
❌ | delay Node variable delay is the default if msg.delay not specified |
❌ | delay Node variable delay is zero if msg.delay is negative |
❌ | delay Node variable delay is zero if msg.delay is zero |
❌ | delay Node variable delay set by msg.delay the message in milliseconds |
Status | Spec Test |
---|---|
❌ | trigger node messaging API should call done() when first message has been processed |
❌ | trigger node messaging API should call done() when it receives reset message |
❌ | trigger node should be able output the 2nd payload |
❌ | trigger node should be able output the 2nd payload and handle multiple topics |
❌ | trigger node should be able to apply mustache templates to payloads |
❌ | trigger node should be able to extend the delay |
❌ | trigger node should be able to extend the delay (but with no 2nd output) |
❌ | trigger node should be able to extend the delay and output the most recent payload |
❌ | trigger node should be able to not output anything on first trigger |
❌ | trigger node should be able to not output anything on second edge |
❌ | trigger node should be able to reset correctly having not output anything on second edge |
❌ | trigger node should be able to return things from flow and global context variables |
❌ | trigger node should be able to return things from multiple persistable flow & global context variables |
❌ | trigger node should be able to return things from multiple persistable flow context variables |
❌ | trigger node should be able to return things from multiple persistable global context variables |
❌ | trigger node should be able to return things from persistable flow and global context variables |
❌ | trigger node should be able to send 2nd message to a 2nd output |
❌ | trigger node should be able to set a repeat, and clear loop by reset |
❌ | trigger node should be able to set delay in hours |
❌ | trigger node should be able to set delay in minutes |
❌ | trigger node should be able to set delay in seconds |
❌ | trigger node should be able to set infinite timeout, and clear timeout |
❌ | trigger node should be able to set infinite timeout, and clear timeout by boolean false |
❌ | trigger node should be able to set infinite timeout, and clear timeout by boolean true |
❌ | trigger node should be able to set infinite timeout, and clear timeout by message |
❌ | trigger node should be loaded with correct defaults |
❌ | trigger node should handle multiple other properties individually if asked to do so |
❌ | trigger node should handle multiple topics as one if not asked to handle |
❌ | trigger node should handle multiple topics individually if asked to do so |
❌ | trigger node should handle multiple topics individually, and extend one, if asked to do so |
❌ | trigger node should handle string null as null |
❌ | trigger node should handle string null as null on op2 |
❌ | trigger node should handle true and false as strings and delay of 0 |
❌ | trigger node should ignore any other inputs while triggered if extend is false |
❌ | trigger node should ignore msg.delay if overrideDelay not set |
❌ | trigger node should output 1 then 0 when triggered (default) |
❌ | trigger node should output 1st value when triggered (bin) |
❌ | trigger node should output 1st value when triggered (bool) |
❌ | trigger node should output 1st value when triggered (env) |
❌ | trigger node should output 1st value when triggered (json) |
❌ | trigger node should output 1st value when triggered (num) |
❌ | trigger node should output 1st value when triggered (str) |
❌ | trigger node should output 2st value when triggered (bin) |
❌ | trigger node should output 2st value when triggered (bool) |
❌ | trigger node should output 2st value when triggered (env) |
❌ | trigger node should output 2st value when triggered (json) |
❌ | trigger node should output 2st value when triggered (num) |
❌ | trigger node should output 2st value when triggered (str) |
❌ | trigger node should use msg.delay if overrideDelay is set |
Status | Spec Test |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
❌ | rbe node should be loaded with correct defaults |
❌ | rbe node should warn if no number found in deadband mode |
Status | Spec Test |
---|---|
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ | |
✅ |