@gregoriusrippenstein/erlang-red-unittest 0.12.0
Unit testing nodes for Erlang-RED and Node-RED.
Unit testing nodes for Erlang-RED
Node-RED Nodes for testing flow correctness in the Erlang-Red project.
These nodes provide the basis for the unofficial Visual Unit Testing Suite (VUTS) for Node-RED. The test-suite aims to create a collection of visual unit tests for regression testing of existing behaviour. However the test-suite also provides a proof of correctness for projects that emulate Node-RED behaviour, for example Erlang-Red.
Thus if others wish to implement a Node-RED engine in their favourite language, then implementing these nodes first and then loading this test-suite will provide a good roadmap for further development. For example.
Assert Nodes
There are five assert nodes defined to:
- test whether a message contains the correct values (assert-values),
- whether a msg object arrived (assert-success),
- whether msg object was not received (assert-failure),
- whether a node generated a status message (assert-status), and
- whether a node generated a debug message (assert-debug)
Only the first three are partly implemented in Node-RED/NodeJS.
Their server-side implementations in Erlang-RED:
Admittedly the assert status node can be replaced by using a status node followed by an assert true node. These nodes provided the basis for the Erlang-RED project and therefore existed before any other nodes - hence the duplicity.
These nodes have been published because the Erlang-RED flow testsuite utilises them.
Actions
This package also defines the following actions that can be mapped to keyboard shortcuts:
- Test Current Workspace: triggers all inject buttons on the current workspace. Might well have undesired consequences if run on incorrect workspaces.
- Send Halt To Test Server: (Erlang-Red only) restarts the server
- Run All Tests: (Erlang-Red only) run all defined unit tests.
Tee Time
Artifacts
- NPMjs Package
- Node-RED node package
- GitHub Repo
- Node-RED flow that maintains this codebase.