@gregoriusrippenstein/erlang-red-unittest 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +15 -0
- package/README.md +14 -0
- package/nodes/locales/en-US/ut-assert-debug.html +4 -0
- package/nodes/locales/en-US/ut-assert-debug.json +16 -0
- package/nodes/locales/en-US/ut-assert-failure.html +6 -0
- package/nodes/locales/en-US/ut-assert-failure.json +14 -0
- package/nodes/locales/en-US/ut-assert-status.html +4 -0
- package/nodes/locales/en-US/ut-assert-status.json +17 -0
- package/nodes/locales/en-US/ut-assert-success.html +6 -0
- package/nodes/locales/en-US/ut-assert-success.json +15 -0
- package/nodes/locales/en-US/ut-assert-values.html +9 -0
- package/nodes/locales/en-US/ut-assert-values.json +57 -0
- package/nodes/ut-assert-debug.html +164 -0
- package/nodes/ut-assert-debug.js +38 -0
- package/nodes/ut-assert-failure.html +64 -0
- package/nodes/ut-assert-failure.js +38 -0
- package/nodes/ut-assert-status.html +199 -0
- package/nodes/ut-assert-status.js +38 -0
- package/nodes/ut-assert-success.html +64 -0
- package/nodes/ut-assert-success.js +38 -0
- package/nodes/ut-assert-values.html +288 -0
- package/nodes/ut-assert-values.js +120 -0
- package/package.json +34 -0
- package/plugins/sidebar.html +608 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
module.exports = function(RED) {
|
|
2
|
+
function CoreutassertvaluesFunctionality(config) {
|
|
3
|
+
RED.nodes.createNode(this,config);
|
|
4
|
+
|
|
5
|
+
var node = this;
|
|
6
|
+
var cfg = config;
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
var sendToDebug = (nde,rule,msgc,lvl) => {
|
|
10
|
+
try {
|
|
11
|
+
let msg = {
|
|
12
|
+
id: nde.id,
|
|
13
|
+
z: nde.z,
|
|
14
|
+
_alias: nde._alias,
|
|
15
|
+
path: nde._flow.path,
|
|
16
|
+
name: nde.name,
|
|
17
|
+
topic: msgc.topic,
|
|
18
|
+
msg: {msg: msgc, rule: rule},
|
|
19
|
+
level: lvl
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
msg = RED.util.encodeObject(msg);
|
|
23
|
+
RED.comms.publish("debug", msg);
|
|
24
|
+
} catch (ex) {
|
|
25
|
+
console.error(ex)
|
|
26
|
+
}
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var postUnsupported = (rule) => {
|
|
31
|
+
node.status({ fill: "red", shape: "dot",
|
|
32
|
+
text: RED._("ut-assert-values.label.unsupported", { property: JSON.stringify(rule) }) });
|
|
33
|
+
sendToDebug(node, rule, 30)
|
|
34
|
+
return rule
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
node.on('close', function() {
|
|
38
|
+
node.status({});
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
/* msg handler, in this case pass the message on unchanged */
|
|
42
|
+
node.on("input", function(msg, send, done) {
|
|
43
|
+
var failures = [];
|
|
44
|
+
var unsupported = [];
|
|
45
|
+
|
|
46
|
+
cfg.rules.forEach(rule => {
|
|
47
|
+
/*
|
|
48
|
+
* Rule is Equal
|
|
49
|
+
*/
|
|
50
|
+
if ( rule.t == "eql" && rule.pt == "msg") {
|
|
51
|
+
if ( rule.tot == "str") {
|
|
52
|
+
if ( rule.to != RED.util.getObjectProperty(msg,rule.p) ) {
|
|
53
|
+
failures.push(sendToDebug(node, rule, msg, 20))
|
|
54
|
+
}
|
|
55
|
+
} else if ( rule.tot == "num") {
|
|
56
|
+
if ( parseInt(rule.to) != parseInt(RED.util.getObjectProperty(msg,rule.p)) ) {
|
|
57
|
+
failures.push(sendToDebug(node, rule, msg, 20))
|
|
58
|
+
}
|
|
59
|
+
} else if (rule.tot == "json") {
|
|
60
|
+
let expObj = JSON.parse(rule.to)
|
|
61
|
+
let oldObj = RED.util.getObjectProperty(msg, rule.p)
|
|
62
|
+
if ( JSON.stringify(oldObj, Object.keys(oldObj).sort()) != JSON.stringify(expObj, Object.keys(expObj).sort()) ) {
|
|
63
|
+
failures.push(sendToDebug(node, rule, msg, 20))
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
unsupported.push(postUnsupported(rule))
|
|
67
|
+
}
|
|
68
|
+
/*
|
|
69
|
+
* Rule is match
|
|
70
|
+
*/
|
|
71
|
+
} else if ( rule.t == "mth" && rule.pt == "msg") {
|
|
72
|
+
if (rule.tot == "str") {
|
|
73
|
+
let reExp = new RegExp(rule.to)
|
|
74
|
+
if ( !reExp.test(RED.util.getObjectProperty(msg, rule.p)) ) {
|
|
75
|
+
failures.push(sendToDebug(node, rule, msg, 20))
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
unsupported.push(postUnsupported(rule))
|
|
79
|
+
}
|
|
80
|
+
/*
|
|
81
|
+
* Other rule types are not supported
|
|
82
|
+
*/
|
|
83
|
+
} else {
|
|
84
|
+
unsupported.push(postUnsupported(rule))
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
console.log(rule)
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
if (failures.length > 0 ) {
|
|
91
|
+
node.status({fill: "red", shape: "dot", text: "assert failed"})
|
|
92
|
+
} else {
|
|
93
|
+
if ( unsupported.length > 0) {
|
|
94
|
+
node.status({ fill: "yellow", shape: "ring", text: "unsupported errors" })
|
|
95
|
+
} else {
|
|
96
|
+
node.status({ fill: "green", shape: "ring", text: "assert succeed" })
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
try {
|
|
102
|
+
send(msg);
|
|
103
|
+
done();
|
|
104
|
+
} catch ( err ) {
|
|
105
|
+
// use node.error if the node might send subsequent messages
|
|
106
|
+
node.error("error occurred", { ...msg, error: err })
|
|
107
|
+
done();
|
|
108
|
+
}
|
|
109
|
+
} catch (err) {
|
|
110
|
+
// use done if the node won't send anymore messages for the
|
|
111
|
+
// message it received.
|
|
112
|
+
msg.error = err
|
|
113
|
+
done(err.message, msg)
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
RED.nodes.registerType("ut-assert-values", CoreutassertvaluesFunctionality);
|
|
119
|
+
|
|
120
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@gregoriusrippenstein/erlang-red-unittest",
|
|
3
|
+
"version": "0.9.1",
|
|
4
|
+
"dependencies": {
|
|
5
|
+
"mustache": "^4.2.0"
|
|
6
|
+
},
|
|
7
|
+
|
|
8
|
+
"keywords": [
|
|
9
|
+
"node-red",
|
|
10
|
+
"erlang-red",
|
|
11
|
+
"unit-testing",
|
|
12
|
+
"assert-the-truth"
|
|
13
|
+
],
|
|
14
|
+
|
|
15
|
+
"license": "Don't do evil.",
|
|
16
|
+
"author": "Gerrit Riessen <gerrit@flowhub.org>",
|
|
17
|
+
"engines": {
|
|
18
|
+
"node": ">=14"
|
|
19
|
+
},
|
|
20
|
+
|
|
21
|
+
"node-red" : {
|
|
22
|
+
"version": ">=2.0.0",
|
|
23
|
+
"plugins": {
|
|
24
|
+
"unittesting_sidebar": "plugins/sidebar.html"
|
|
25
|
+
},
|
|
26
|
+
"nodes": {
|
|
27
|
+
"ut-assert-failure": "nodes/ut-assert-failure.js",
|
|
28
|
+
"ut-assert-values": "nodes/ut-assert-values.js",
|
|
29
|
+
"ut-assert-success": "nodes/ut-assert-success.js",
|
|
30
|
+
"ut-assert-status": "nodes/ut-assert-status.js",
|
|
31
|
+
"ut-assert-debug": "nodes/ut-assert-debug.js"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|