Skip to content

Latest commit

 

History

History
565 lines (565 loc) · 43.3 KB

REDNODES-SPECS-DIFF.md

File metadata and controls

565 lines (565 loc) · 43.3 KB

Node-RED Spec Tests Diff

This file is automatically generated by the script test/specs_diff.py to compare the specification compliance of EdgeLink and Node-RED nodes.

common nodes

inject

Status Spec Test
inject node inject id of flow as environment variable
inject node inject id of flow as environment variable
inject node inject id of group as environment variable
inject node inject id of group as environment variable by substitution
inject node inject id of node as environment variable
inject node inject id of node as environment variable by substitution
inject node inject name of flow as environment variable
inject node inject name of flow as environment variable by substitution
inject node inject name of group as environment variable
inject node inject name of group as environment variable by substitution
inject node inject name of node as environment variable
inject node inject name of node as environment variable by substitution
inject node inject path of node as environment variable
inject node inject path of node as environment variable by substitution
inject node inject value (bin)
inject node inject value (bool)
inject node inject value (json)
inject node inject value (num)
inject node inject value (str)
inject node inject value of environment variable
inject node should inject multiple properties
inject node should inject multiple properties using legacy props if needed
inject node should inject once with 500 msec. delay
inject node should inject once with default delay
inject node should inject once with default delay property
inject node should inject once with delay of two seconds
inject node should inject once with delay of two seconds and repeatedly
inject node should inject repeatedly
inject node should inject with cron
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

catch

Status Spec Test
catch Node should output a message when called

link

Status Spec Test
link Node link-call node should allow nested link-call flows
link Node link-call node should call link-in node by name and get response
link Node link-call node should call static link-in node and get response
link Node should be linked
link Node should be linked from multiple nodes
link Node should be linked to multiple nodes
link Node should be loaded (link in)
link Node should be loaded (link out)
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

function nodes

function

Status Spec Test
function node should allow accessing env vars
function node should allow accessing node.id
function node should allow accessing node.id and node.name and node.outputCount
function node should allow accessing node.name
function node should allow input to be discarded by returning null
function node should clone first message sent using send() - array 1
function node should clone first message sent using send() - array 2
function node should clone first message sent using send() - array 3
function node should clone first message sent using send() - array 3
function node should clone single message sent using send()
function node should drop and log non-object message types - array
function node should drop and log non-object message types - boolean
function node should drop and log non-object message types - buffer
function node should drop and log non-object message types - number
function node should drop and log non-object message types - string
function node should execute initialization
function node should get flow context
function node should get flow context
function node should get global context
function node should get global context
function node should get keys in default persistable node context
function node should get keys in flow context
function node should get keys in global context
function node should get keys in node context
function node should get keys in persistable flow context (w/ callback)
function node should get keys in persistable flow context (w/o callback)
function node should get keys in persistable node context (w/ callback)
function node should get keys in persistable node context (w/o callback)
function node should get node context
function node should get persistable flow context (w/ callback)
function node should get persistable flow context (w/o callback)
function node should get persistable global context (w/ callback)
function node should get persistable global context (w/ callback)
function node should get persistable global context (w/o callback)
function node should get persistable global context (w/o callback)
function node should get persistable node context (w/ callback)
function node should get persistable node context (w/o callback)
function node should handle clearInterval()
function node should handle null amongst valid messages
function node should handle setInterval()
function node should handle setTimeout()
function node should not clone single message sent using send(,false)
function node should pass through _topic
function node should send returned message
function node should send returned message using send()
function node should send returned message using send()
function node should send to multiple messages
function node should send to multiple outputs
function node should set default persistable node context
function node should set flow context
function node should set global context
function node should set node context
function node should set persistable flow context (w/ callback)
function node should set persistable flow context (w/o callback)
function node should set persistable global context (w/ callback)
function node should set persistable global context (w/o callback)
function node should set persistable node context (w callback)
function node should set persistable node context (w/o callback)
function node should set two persistable flow context (w/ callback)
function node should set two persistable flow context (w/o callback)
function node should set two persistable node context (single call, w/o callback)
function node should set two persistable node context (w callback)
function node should set two persistable node context (w/o callback)
function node should wait completion of initialization
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

switch

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

change

Status Spec Test
change Node #change changes the number using global context property
change Node #change changes the number using persistable global context property
change Node #change changes the value - new rule format
change Node #change changes the value and doesnt change type of the flow context for partial match
change Node #change changes the value and doesnt change type of the message property for partial match
change Node #change changes the value and doesnt change type of the persistable flow context for partial match
change Node #change changes the value and type of the flow context if a complete match
change Node #change changes the value and type of the message property if a complete match - boolean
change Node #change changes the value and type of the message property if a complete match - number
change Node #change changes the value and type of the persistable flow context if a complete match
change Node #change changes the value of a multi-level message property
change Node #change changes the value of the global context
change Node #change changes the value of the message property
change Node #change changes the value of the message property based on a regex
change Node #change changes the value of the persistable global context
change Node #change changes the value using boolean - boolean flow context
change Node #change changes the value using boolean - boolean payload
change Node #change changes the value using boolean - boolean persistable flow context
change Node #change changes the value using boolean - string payload
change Node #change changes the value using flow context property
change Node #change changes the value using global context property
change Node #change changes the value using msg property
change Node #change changes the value using number - number flow context
change Node #change changes the value using number - number payload
change Node #change changes the value using number - number persistable flow context
change Node #change changes the value using number - string payload
change Node #change changes the value using persistable flow context property
change Node #change changes the value using persistable global context property
change Node #change env var changes the value using env property
change Node #change sends unaltered message if a changed multi-level message property does not exist
change Node #change sends unaltered message if the changed message property does not exist
change Node #change supports regex groups
change Node #change supports regex groups - new rule format
change Node #delete deletes the value of a multi-level message property
change Node #delete deletes the value of global context property
change Node #delete deletes the value of persistable global context property
change Node #delete deletes the value of the message property
change Node #delete sends unaltered message if a deleted multi-level message property does not exist
change Node #delete sends unaltered message if the deleted message property does not exist
change Node #move moves the value of a message property object
change Node #move moves the value of a message property object to a sub-property
change Node #move moves the value of a message property object to itself
change Node #move moves the value of a message sub-property object to a property
change Node #move moves the value of the message property
change Node #set changes the value to a boolean value
change Node #set changes the value to a buffer object
change Node #set changes the value to a js object
change Node #set changes the value to a number
change Node #set changes the value to flow context property
change Node #set changes the value to global context property
change Node #set changes the value to persistable flow context property
change Node #set changes the value to persistable global context property
change Node #set does not set other properties using = inside to property
change Node #set doesn't set the value of a message property when the 'to' message property does not exist
change Node #set env var sets the value using env property
change Node #set env var sets the value using env property from group
change Node #set env var sets the value using env property from nested group
change Node #set env var sets the value using env property from tab
change Node #set overrides the value of a message property when the 'to' message property does not exist
change Node #set sets the message property to null when the 'to' message property equals null
change Node #set sets the value and type of the message property
change Node #set sets the value of a message property to another message property
change Node #set sets the value of a message property using a nested property
change Node #set sets the value of a message property using a nested property in flow context
change Node #set sets the value of a multi-level message property to another multi-level message property
change Node #set sets the value of a nested flow context property using a message property
change Node #set sets the value of a nested message property using a message property
change Node #set sets the value of an already set multi-level message property
change Node #set sets the value of an empty multi-level message property
change Node #set sets the value of global context property
change Node #set sets the value of persistable global context property
change Node #set sets the value of the message property
change Node #set sets the value of the message property to the current timestamp
change Node #set splits dot delimited properties into objects
change Node - multiple rules applies multiple rules in order
change Node - multiple rules can access persistable global & flow context property
change Node - multiple rules can access two persistable flow context property
change Node - multiple rules can access two persistable global context property
change Node - multiple rules handles multiple rules
change Node should load defaults if set to change
change Node should load defaults if set to replace
change Node should load node with defaults
change Node should no-op if there are no rules
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

range

Status Spec Test
range Node clamps numbers within a range - below min
range Node clamps numbers within a range - over max
range Node drops msg if in drop mode and input outside range
range Node just passes on msg if payload not present
range Node ranges numbers down such as centimetres to metres
range Node ranges numbers up tenfold
range Node reports if input is not a number
range Node wraps numbers around say for degree/rotation reading 0
range Node wraps numbers around say for degree/rotation reading 1/3
range Node wraps numbers around say for degree/rotation reading 1/4
range Node wraps numbers down say for degree/rotation reading 1/2
range Node wraps numbers down say for degree/rotation reading 1/4
range Node should load some defaults

template

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

delay

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

trigger

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

rbe

Status Spec Test
rbe node should ignore multiple topics if told to (rbe)
rbe node should not send output if more than x away from original value (narrowband in step mode)
rbe node should not send output if more than x away from original value (narrowband)
rbe node should not send output if x away or greater from original value (narrowbandEq)
rbe node should only send output if another chosen property changes - foo (rbe)
rbe node should only send output if more than x away from original value (deadband)
rbe node should only send output if more than x% away from original value (deadband)
rbe node should only send output if payload changes - ignoring first value (rbei)
rbe node should only send output if payload changes - with multiple topics (rbe)
rbe node should only send output if x away from original value (deadbandEq)
rbe node should send output if gap is 0 and input doesnt change (narrowband)
rbe node should send output if queue is reset (rbe)
rbe node should be loaded with correct defaults
rbe node should warn if no number found in deadband mode

subflow

subflow

Status Spec Test
subflow should access NR_NODE_PATH env var within subflow instance
subflow should access env var of group
subflow should access env var of nested group
subflow should access env var of parent subflow instance
subflow should access env var of parent subflow template
subflow should access env var of subflow instance
subflow should access env var of subflow template
subflow should access env var of tab
subflow should access last env var with same name
subflow should access typed value of env var
subflow should define subflow
subflow should overwrite env var of subflow template by env var of subflow instance
subflow should pass data to/from nested subflow
subflow should pass data to/from subflow