@gregoriusrippenstein/erlang-red-unittest 0.12.1 → 0.12.3

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.
@@ -10,10 +10,14 @@
10
10
  name: {
11
11
  value:"",
12
12
  },
13
+
14
+ scope: { value: null, type: "*[]", required: true },
15
+
13
16
  nodeid: {
14
17
  value: "",
15
18
  required: true
16
- },
19
+ },
20
+
17
21
  msgtype: {
18
22
  value: "normal",
19
23
  required: true
@@ -29,9 +33,14 @@
29
33
  outputs: 1,
30
34
 
31
35
  label: function() {
32
- if (this.nodeid && !this.name ) {
33
- let nodeLabel = `[${this.nodeid}]`;
34
- let node = RED.nodes.node(this.nodeid)
36
+
37
+ if (this.nodeid && (!this.scope || !this.scope[0])) {
38
+ this.scope = [this.nodeid]
39
+ }
40
+
41
+ if (this.scope && this.scope[0] && !this.name ) {
42
+ let nodeLabel = `[${this.scope[0]}]`;
43
+ let node = RED.nodes.node(this.scope[0])
35
44
  if (node) {
36
45
  nodeLabel = RED.utils.getNodeLabel(node)
37
46
  }
@@ -45,7 +54,11 @@
45
54
  },
46
55
 
47
56
  labelStyle: function() {
48
- return (this.name || this.nodeid) ? "node_label_italic" : "";
57
+ if (this.nodeid && (!this.scope || !this.scope[0])) {
58
+ this.scope = [this.nodeid]
59
+ }
60
+
61
+ return (this.name || (this.scope && this.scope[0])) ? "node_label_italic" : "";
49
62
  },
50
63
 
51
64
  onpaletteadd: function() {
@@ -55,6 +68,10 @@
55
68
  },
56
69
 
57
70
  oneditprepare: function() {
71
+ if (this.nodeid && (!this.scope || !this.scope[0])) {
72
+ this.scope = [this.nodeid]
73
+ }
74
+
58
75
  $('#node-input-inverse').on('change', () => {
59
76
  if ($('#node-input-inverse').is(":checked")) {
60
77
  $('#ut-assert-debug-opts-to-hide-on-inverse').fadeOut(300);
@@ -65,10 +82,11 @@
65
82
 
66
83
  var dirList = $("#node-input-assert-debug-target-container-div").css({
67
84
  width: "100%",
68
- height: "calc(100%)"
85
+ height: "100%"
69
86
  }).treeList(
70
87
  {
71
- multi: false
88
+ multi: false,
89
+ sortable: false
72
90
  }
73
91
  ).on('treelistselect', function (event, item) {
74
92
  if (item && item.nodeid) {
@@ -110,7 +128,7 @@
110
128
  nodeid: nde.id,
111
129
  node: nde,
112
130
  sublabel: nde.type,
113
- selected: nde.id == this.nodeid,
131
+ selected: this.scope && (this.scope[0] == nde.id),
114
132
  checkbox: false,
115
133
  radio: true,
116
134
  children: undefined
@@ -124,7 +142,11 @@
124
142
  },
125
143
 
126
144
  oneditsave: function() {
127
- this.nodeid = $("#node-input-assert-debug-target-container-div").treeList('selected').nodeid
145
+ if ($("#node-input-assert-debug-target-container-div").treeList('selected').nodeid) {
146
+ this.scope = [$("#node-input-assert-debug-target-container-div").treeList('selected').nodeid]
147
+ } else {
148
+ this.scope = []
149
+ }
128
150
  },
129
151
 
130
152
  oneditresize: function(size) {
@@ -63,118 +63,124 @@ module.exports = function(RED) {
63
63
  var failures = [];
64
64
  var unsupported = [];
65
65
 
66
- cfg.rules.forEach(rule => {
67
- /*
68
- * Rule is Equal
69
- */
70
- if ( rule.t == "eql" && rule.pt == "msg") {
71
- if ( rule.tot == "str") {
72
- if ( rule.to != escapeSpecials(RED.util.getObjectProperty(msg,rule.p)) ) {
73
- rule._vt = escapeSpecials(RED.util.getObjectProperty(msg, rule.p))
74
- failures.push(sendToDebug(node, rule, msg, 20))
75
- }
76
- } else if ( rule.tot == "num") {
77
- if ( rule.to != RED.util.getObjectProperty(msg,rule.p) ) {
78
- failures.push(sendToDebug(node, rule, msg, 20))
66
+ try {
67
+ cfg.rules.forEach(rule => {
68
+ /*
69
+ * Rule is Equal
70
+ */
71
+ if ( rule.t == "eql" && rule.pt == "msg") {
72
+ if ( rule.tot == "str") {
73
+ if ( rule.to != escapeSpecials(RED.util.getObjectProperty(msg,rule.p)) ) {
74
+ rule._vt = escapeSpecials(RED.util.getObjectProperty(msg, rule.p))
75
+ failures.push(sendToDebug(node, rule, msg, 20))
76
+ }
77
+ } else if ( rule.tot == "num") {
78
+ if ( rule.to != RED.util.getObjectProperty(msg,rule.p) ) {
79
+ failures.push(sendToDebug(node, rule, msg, 20))
80
+ }
81
+ } else if (rule.tot == "bin") {
82
+ let expBuffer = Buffer.from(JSON.parse(rule.to));
83
+ let valBuffer = RED.util.getObjectProperty(msg, rule.p);
84
+ if ( Buffer.compare( expBuffer, valBuffer) != 0 ) {
85
+ failures.push(sendToDebug(node, rule, msg, 20))
86
+ }
87
+ } else if (rule.tot == "bool") {
88
+ if ( rule.to == "true" && !RED.util.getObjectProperty(msg, rule.p)) {
89
+ failures.push(sendToDebug(node, rule, msg, 20))
90
+ } else if (rule.to == "false" && !!RED.util.getObjectProperty(msg, rule.p) ) {
91
+ failures.push(sendToDebug(node, rule, msg, 20))
92
+ }
93
+ } else if (rule.tot == "json") {
94
+ let expObj = JSON.parse(rule.to)
95
+ let oldObj = RED.util.getObjectProperty(msg, rule.p)
96
+
97
+ if ( Array.isArray(expObj)) {
98
+ if (JSON.stringify(oldObj) != JSON.stringify(expObj)) {
99
+ failures.push(sendToDebug(node, rule, msg, 20))
100
+ }
101
+ } else {
102
+ if ( JSON.stringify(oldObj, Object.keys(oldObj).sort()) != JSON.stringify(expObj, Object.keys(expObj).sort()) ) {
103
+ failures.push(sendToDebug(node, rule, msg, 20))
104
+ }
105
+ }
106
+ } else if (rule.tot == "msg") {
107
+ if ( RED.util.getObjectProperty(msg,rule.to) != RED.util.getObjectProperty(msg,rule.p) ) {
108
+ failures.push(sendToDebug(node, rule, msg, 20))
109
+ }
110
+ } else {
111
+ unsupported.push(postUnsupported(rule,msg))
79
112
  }
80
- } else if (rule.tot == "bin") {
81
- let expBuffer = Buffer.from(JSON.parse(rule.to));
82
- let valBuffer = RED.util.getObjectProperty(msg, rule.p);
83
- if ( Buffer.compare( expBuffer, valBuffer) != 0 ) {
113
+ /*
114
+ * Rule is not set on message object
115
+ */
116
+ } else if (rule.t == "notset" && rule.pt == "msg") {
117
+ if (RED.util.getObjectProperty(msg, rule.p) !== undefined) {
84
118
  failures.push(sendToDebug(node, rule, msg, 20))
85
119
  }
86
- } else if (rule.tot == "bool") {
87
- if ( rule.to == "true" && !RED.util.getObjectProperty(msg, rule.p)) {
88
- failures.push(sendToDebug(node, rule, msg, 20))
89
- } else if (rule.to == "false" && !!RED.util.getObjectProperty(msg, rule.p) ) {
120
+ /*
121
+ * Rule is not set on message object
122
+ */
123
+ } else if (rule.t == "set" && rule.pt == "msg") {
124
+ if (RED.util.getObjectProperty(msg, rule.p) === undefined) {
90
125
  failures.push(sendToDebug(node, rule, msg, 20))
91
126
  }
92
- } else if (rule.tot == "json") {
93
- let expObj = JSON.parse(rule.to)
94
- let oldObj = RED.util.getObjectProperty(msg, rule.p)
95
-
96
- if ( Array.isArray(expObj)) {
97
- if (JSON.stringify(oldObj) != JSON.stringify(expObj)) {
98
- failures.push(sendToDebug(node, rule, msg, 20))
99
- }
100
- } else {
101
- if ( JSON.stringify(oldObj, Object.keys(oldObj).sort()) != JSON.stringify(expObj, Object.keys(expObj).sort()) ) {
127
+ /*
128
+ * Rule is match
129
+ */
130
+ } else if ( rule.t == "mth" && rule.pt == "msg") {
131
+ if (rule.tot == "str") {
132
+ let reExp = new RegExp(rule.to)
133
+ if ( !reExp.test(RED.util.getObjectProperty(msg, rule.p)) ) {
102
134
  failures.push(sendToDebug(node, rule, msg, 20))
103
135
  }
136
+ } else {
137
+ unsupported.push(postUnsupported(rule,msg))
104
138
  }
105
- } else if (rule.tot == "msg") {
106
- if ( RED.util.getObjectProperty(msg,rule.to) != RED.util.getObjectProperty(msg,rule.p) ) {
139
+ /*
140
+ * Rule is not equal
141
+ */
142
+ } else if (rule.t == "noteql" && rule.pt == "msg" && rule.tot == "msg") {
143
+ /* comparing two values on the message object */
144
+ let expObj = RED.util.getObjectProperty(msg, rule.to)
145
+ let oldObj = RED.util.getObjectProperty(msg, rule.p)
146
+ if (expObj == oldObj) {
107
147
  failures.push(sendToDebug(node, rule, msg, 20))
108
148
  }
149
+ /*
150
+ * Other rule types are not supported
151
+ */
109
152
  } else {
110
153
  unsupported.push(postUnsupported(rule,msg))
111
154
  }
112
- /*
113
- * Rule is not set on message object
114
- */
115
- } else if (rule.t == "notset" && rule.pt == "msg") {
116
- if (RED.util.getObjectProperty(msg, rule.p) !== undefined) {
117
- failures.push(sendToDebug(node, rule, msg, 20))
118
- }
119
- /*
120
- * Rule is not set on message object
121
- */
122
- } else if (rule.t == "set" && rule.pt == "msg") {
123
- if (RED.util.getObjectProperty(msg, rule.p) === undefined) {
124
- failures.push(sendToDebug(node, rule, msg, 20))
125
- }
126
- /*
127
- * Rule is match
128
- */
129
- } else if ( rule.t == "mth" && rule.pt == "msg") {
130
- if (rule.tot == "str") {
131
- let reExp = new RegExp(rule.to)
132
- if ( !reExp.test(RED.util.getObjectProperty(msg, rule.p)) ) {
133
- failures.push(sendToDebug(node, rule, msg, 20))
134
- }
135
- } else {
136
- unsupported.push(postUnsupported(rule,msg))
137
- }
138
- /*
139
- * Rule is not equal
140
- */
141
- } else if (rule.t == "noteql" && rule.pt == "msg" && rule.tot == "msg") {
142
- /* comparing two values on the message object */
143
- let expObj = RED.util.getObjectProperty(msg, rule.to)
144
- let oldObj = RED.util.getObjectProperty(msg, rule.p)
145
- if (expObj == oldObj) {
146
- failures.push(sendToDebug(node, rule, msg, 20))
147
- }
148
- /*
149
- * Other rule types are not supported
150
- */
151
- } else {
152
- unsupported.push(postUnsupported(rule,msg))
153
- }
154
- })
155
+ })
155
156
 
156
- if (node.context().get("succeed") && cfg.ignore_failure_if_succeed) {
157
- node.status({ fill: "green", shape: "ring", text: "assert succeed" })
158
- } else {
159
- if (failures.length > 0 ) {
160
- node.status({fill: "red", shape: "dot", text: "assert failed"})
161
- msg.assert_succeed = false
162
- msg.assert_failures = failures.concat(unsupported)
157
+ if (node.context().get("succeed") && cfg.ignore_failure_if_succeed) {
158
+ node.status({ fill: "green", shape: "ring", text: "assert succeed" })
163
159
  } else {
164
- if ( unsupported.length > 0) {
165
- node.status({ fill: "yellow", shape: "ring", text: "unsupported errors - check debug" })
160
+ if (failures.length > 0 ) {
161
+ node.status({fill: "red", shape: "dot", text: "assert failed"})
166
162
  msg.assert_succeed = false
167
- msg.assert_failures = failures.concat( unsupported )
163
+ msg.assert_failures = failures.concat(unsupported)
168
164
  } else {
169
- node.context().set("succeed",true)
170
- node.status({ fill: "green", shape: "ring", text: "assert succeed" })
171
- msg.assert_succeed = true
172
- delete msg.assert_failures
165
+ if ( unsupported.length > 0) {
166
+ node.status({ fill: "yellow", shape: "ring", text: "unsupported errors - check debug" })
167
+ msg.assert_succeed = false
168
+ msg.assert_failures = failures.concat( unsupported )
169
+ } else {
170
+ node.context().set("succeed",true)
171
+ node.status({ fill: "green", shape: "ring", text: "assert succeed" })
172
+ msg.assert_succeed = true
173
+ delete msg.assert_failures
174
+ }
173
175
  }
174
176
  }
177
+ send(msg);
178
+ done();
179
+ } catch ( e ) {
180
+ node.status({ fill: "red", shape: "ring", text: "exception see log" })
181
+ done()
182
+ throw(e) // re-raise so that exception appears in the debug log
175
183
  }
176
- send(msg);
177
- done();
178
184
  });
179
185
  }
180
186
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gregoriusrippenstein/erlang-red-unittest",
3
- "version": "0.12.1",
3
+ "version": "0.12.3",
4
4
  "dependencies": {
5
5
  },
6
6