@yousolution/node-red-contrib-you-sap-service-layer 0.0.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.
@@ -0,0 +1,156 @@
1
+ const should = require('should');
2
+ const helper = require('node-red-node-test-helper');
3
+ const closeSap = require('../nodes/closeSap');
4
+ const Context = require('../node_modules/./@node-red/runtime/lib/nodes/context/index');
5
+ const sinon = require('sinon');
6
+ const Support = require('../nodes/support');
7
+
8
+ helper.init(require.resolve('node-red'));
9
+
10
+ describe('closeSap Node', () => {
11
+ beforeEach((done) => {
12
+ helper.startServer(done);
13
+ });
14
+
15
+ function initContext(done) {
16
+ Context.init({
17
+ contextStorage: {
18
+ memory0: {
19
+ module: 'memory',
20
+ },
21
+ memory1: {
22
+ module: 'memory',
23
+ },
24
+ },
25
+ });
26
+ Context.load().then(function () {
27
+ done();
28
+ });
29
+ }
30
+
31
+ afterEach((done) => {
32
+ helper
33
+ .unload()
34
+ .then(function () {
35
+ return Context.clean({ allNodes: {} });
36
+ })
37
+ .then(function () {
38
+ return Context.close();
39
+ })
40
+ .then(function () {
41
+ helper.stopServer(done);
42
+ });
43
+
44
+ // Restore the default sandbox here
45
+ sinon.restore();
46
+
47
+ // helper.unload();
48
+ // helper.stopServer(done);
49
+ });
50
+
51
+ it('should be loaded', (done) => {
52
+ const flow = [
53
+ {
54
+ id: 'n1',
55
+ type: 'closeSap',
56
+ name: 'closeSap',
57
+ wires: [['n2']],
58
+ z: 'flow',
59
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
60
+ },
61
+ ];
62
+
63
+ helper.load(closeSap, flow, () => {
64
+ initContext(function () {
65
+ const n1 = helper.getNode('n1');
66
+
67
+ // console.log(helper.log().args);
68
+
69
+ // n1.context().flow.set('A', 1, 'memory1', function (error) {
70
+ // console.log(error);
71
+ // });
72
+
73
+ // console.log(n1.context().flow.get('A', 'memory1'));
74
+ // console.log('- - - B- - - -');
75
+
76
+ // n1.id
77
+ // flow.push({
78
+ // [`_YOU_SapServiceLayer_${n1.id}.headers`]:
79
+ // })
80
+
81
+ try {
82
+ // n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Set credentials1' });
83
+ // should.equal(n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Missing credentials' }), true);
84
+ n1.should.have.property('name', 'closeSap');
85
+ done();
86
+ } catch (err) {
87
+ done(err);
88
+ }
89
+ });
90
+ });
91
+ });
92
+
93
+ it('should have correct request with data', (done) => {
94
+ const flow = [
95
+ {
96
+ id: 'n1',
97
+ type: 'closeSap',
98
+ name: 'closeSap',
99
+ wires: [['n2']],
100
+ z: 'flow',
101
+ bodyPost: 'data',
102
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
103
+ },
104
+ { id: 'n2', type: 'helper' },
105
+ ];
106
+ helper.load(closeSap, flow, () => {
107
+ const n2 = helper.getNode('n2');
108
+ const n1 = helper.getNode('n1');
109
+
110
+ sinon.stub(Support, 'sendRequest').resolves({ data: 'ok', status: 200 });
111
+
112
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
113
+
114
+ n2.on('input', (msg) => {
115
+ try {
116
+ msg.should.have.property('_msgid');
117
+ msg.should.have.property('payload', 'ok');
118
+ msg.should.have.property('statusCode', 200);
119
+ done();
120
+ } catch (err) {
121
+ done(err);
122
+ }
123
+ });
124
+ });
125
+ });
126
+
127
+ it('should handle the error', (done) => {
128
+ const flow = [
129
+ {
130
+ id: 'n1',
131
+ type: 'closeSap',
132
+ name: 'closeSap',
133
+ wires: [['n2']],
134
+ z: 'flow',
135
+ bodyPost: 'data',
136
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
137
+ },
138
+ { id: 'n2', type: 'helper' },
139
+ ];
140
+ helper.load(closeSap, flow, () => {
141
+ const n2 = helper.getNode('n2');
142
+ const n1 = helper.getNode('n1');
143
+
144
+ const expected = new Error('Custom error');
145
+
146
+ sinon.stub(Support, 'sendRequest').rejects(expected);
147
+
148
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
149
+
150
+ n1.on('call:error', (error) => {
151
+ should.deepEqual(error.args[0], expected);
152
+ done();
153
+ });
154
+ });
155
+ });
156
+ });
@@ -0,0 +1,183 @@
1
+ const should = require('should');
2
+ const helper = require('node-red-node-test-helper');
3
+ const createSap = require('../nodes/createSap');
4
+ const Context = require('../node_modules/./@node-red/runtime/lib/nodes/context/index');
5
+ const sinon = require('sinon');
6
+ const Support = require('../nodes/support');
7
+
8
+ helper.init(require.resolve('node-red'));
9
+
10
+ describe('createSap Node', () => {
11
+ beforeEach((done) => {
12
+ helper.startServer(done);
13
+ });
14
+
15
+ function initContext(done) {
16
+ Context.init({
17
+ contextStorage: {
18
+ memory0: {
19
+ module: 'memory',
20
+ },
21
+ memory1: {
22
+ module: 'memory',
23
+ },
24
+ },
25
+ });
26
+ Context.load().then(function () {
27
+ done();
28
+ });
29
+ }
30
+
31
+ afterEach((done) => {
32
+ helper
33
+ .unload()
34
+ .then(function () {
35
+ return Context.clean({ allNodes: {} });
36
+ })
37
+ .then(function () {
38
+ return Context.close();
39
+ })
40
+ .then(function () {
41
+ helper.stopServer(done);
42
+ });
43
+
44
+ // Restore the default sandbox here
45
+ sinon.restore();
46
+
47
+ // helper.unload();
48
+ // helper.stopServer(done);
49
+ });
50
+
51
+ it('should be loaded', (done) => {
52
+ const flow = [
53
+ {
54
+ id: 'n1',
55
+ type: 'createSap',
56
+ name: 'createSap',
57
+ wires: [['n2']],
58
+ z: 'flow',
59
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
60
+ },
61
+ ];
62
+
63
+ helper.load(createSap, flow, () => {
64
+ initContext(function () {
65
+ const n1 = helper.getNode('n1');
66
+
67
+ // console.log(helper.log().args);
68
+
69
+ // n1.context().flow.set('A', 1, 'memory1', function (error) {
70
+ // console.log(error);
71
+ // });
72
+
73
+ // console.log(n1.context().flow.get('A', 'memory1'));
74
+ // console.log('- - - B- - - -');
75
+
76
+ // n1.id
77
+ // flow.push({
78
+ // [`_YOU_SapServiceLayer_${n1.id}.headers`]:
79
+ // })
80
+
81
+ try {
82
+ // n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Set credentials1' });
83
+ // should.equal(n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Missing credentials' }), true);
84
+ n1.should.have.property('name', 'createSap');
85
+ done();
86
+ } catch (err) {
87
+ done(err);
88
+ }
89
+ });
90
+ });
91
+ });
92
+
93
+ it('should have correct request with data', (done) => {
94
+ const flow = [
95
+ {
96
+ id: 'n1',
97
+ type: 'createSap',
98
+ name: 'createSap',
99
+ wires: [['n2']],
100
+ z: 'flow',
101
+ bodyPost: 'data',
102
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
103
+ },
104
+ { id: 'n2', type: 'helper' },
105
+ ];
106
+ helper.load(createSap, flow, () => {
107
+ const n2 = helper.getNode('n2');
108
+ const n1 = helper.getNode('n1');
109
+
110
+ sinon.stub(Support, 'sendRequest').resolves('ok');
111
+
112
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
113
+
114
+ n2.on('input', (msg) => {
115
+ try {
116
+ msg.should.have.property('_msgid');
117
+ msg.should.have.property('payload', 'ok');
118
+ done();
119
+ } catch (err) {
120
+ done(err);
121
+ }
122
+ });
123
+ });
124
+ });
125
+
126
+ it('should have request without data', (done) => {
127
+ const flow = [
128
+ {
129
+ id: 'n1',
130
+ type: 'createSap',
131
+ name: 'createSap',
132
+ wires: [['n2']],
133
+ z: 'flow',
134
+ bodyPost: 'data',
135
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
136
+ },
137
+ ];
138
+ helper.load(createSap, flow, () => {
139
+ const n1 = helper.getNode('n1');
140
+
141
+ n1.receive({});
142
+
143
+ n1.on('call:error', (error) => {
144
+ try {
145
+ error.should.have.property('firstArg', new Error('bodyPost must have value'));
146
+ done();
147
+ } catch (err) {
148
+ done(err);
149
+ }
150
+ });
151
+ });
152
+ });
153
+
154
+ it('should handle the error', (done) => {
155
+ const flow = [
156
+ {
157
+ id: 'n1',
158
+ type: 'createSap',
159
+ name: 'createSap',
160
+ wires: [['n2']],
161
+ z: 'flow',
162
+ bodyPost: 'data',
163
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
164
+ },
165
+ { id: 'n2', type: 'helper' },
166
+ ];
167
+ helper.load(createSap, flow, () => {
168
+ const n2 = helper.getNode('n2');
169
+ const n1 = helper.getNode('n1');
170
+
171
+ const expected = new Error('Custom error');
172
+
173
+ sinon.stub(Support, 'sendRequest').rejects(expected);
174
+
175
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
176
+
177
+ n1.on('call:error', (error) => {
178
+ should.deepEqual(error.args[0], expected);
179
+ done();
180
+ });
181
+ });
182
+ });
183
+ });
@@ -0,0 +1,156 @@
1
+ const should = require('should');
2
+ const helper = require('node-red-node-test-helper');
3
+ const crossJoinSap = require('../nodes/crossJoinSap');
4
+ const Context = require('../node_modules/./@node-red/runtime/lib/nodes/context/index');
5
+ const sinon = require('sinon');
6
+ const Support = require('../nodes/support');
7
+
8
+ helper.init(require.resolve('node-red'));
9
+
10
+ describe('crossJoinSap Node', () => {
11
+ beforeEach((done) => {
12
+ helper.startServer(done);
13
+ });
14
+
15
+ function initContext(done) {
16
+ Context.init({
17
+ contextStorage: {
18
+ memory0: {
19
+ module: 'memory',
20
+ },
21
+ memory1: {
22
+ module: 'memory',
23
+ },
24
+ },
25
+ });
26
+ Context.load().then(function () {
27
+ done();
28
+ });
29
+ }
30
+
31
+ afterEach((done) => {
32
+ helper
33
+ .unload()
34
+ .then(function () {
35
+ return Context.clean({ allNodes: {} });
36
+ })
37
+ .then(function () {
38
+ return Context.close();
39
+ })
40
+ .then(function () {
41
+ helper.stopServer(done);
42
+ });
43
+
44
+ // Restore the default sandbox here
45
+ sinon.restore();
46
+
47
+ // helper.unload();
48
+ // helper.stopServer(done);
49
+ });
50
+
51
+ it('should be loaded', (done) => {
52
+ const flow = [
53
+ {
54
+ id: 'n1',
55
+ type: 'crossJoinSap',
56
+ name: 'crossJoinSap',
57
+ wires: [['n2']],
58
+ z: 'flow',
59
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
60
+ },
61
+ ];
62
+
63
+ helper.load(crossJoinSap, flow, () => {
64
+ initContext(function () {
65
+ const n1 = helper.getNode('n1');
66
+
67
+ // console.log(helper.log().args);
68
+
69
+ // n1.context().flow.set('A', 1, 'memory1', function (error) {
70
+ // console.log(error);
71
+ // });
72
+
73
+ // console.log(n1.context().flow.get('A', 'memory1'));
74
+ // console.log('- - - B- - - -');
75
+
76
+ // n1.id
77
+ // flow.push({
78
+ // [`_YOU_SapServiceLayer_${n1.id}.headers`]:
79
+ // })
80
+
81
+ try {
82
+ // n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Set credentials1' });
83
+ // should.equal(n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Missing credentials' }), true);
84
+ n1.should.have.property('name', 'crossJoinSap');
85
+ done();
86
+ } catch (err) {
87
+ done(err);
88
+ }
89
+ });
90
+ });
91
+ });
92
+
93
+ it('should have correct request with data', (done) => {
94
+ const flow = [
95
+ {
96
+ id: 'n1',
97
+ type: 'crossJoinSap',
98
+ name: 'crossJoinSap',
99
+ wires: [['n2']],
100
+ z: 'flow',
101
+ bodyPost: 'data',
102
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
103
+ },
104
+ { id: 'n2', type: 'helper' },
105
+ ];
106
+ helper.load(crossJoinSap, flow, () => {
107
+ const n2 = helper.getNode('n2');
108
+ const n1 = helper.getNode('n1');
109
+
110
+ sinon.stub(Support, 'sendRequest').resolves({ data: 'ok', status: 200 });
111
+
112
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
113
+
114
+ n2.on('input', (msg) => {
115
+ try {
116
+ msg.should.have.property('_msgid');
117
+ msg.should.have.property('payload', 'ok');
118
+ msg.should.have.property('statusCode', 200);
119
+ done();
120
+ } catch (err) {
121
+ done(err);
122
+ }
123
+ });
124
+ });
125
+ });
126
+
127
+ it('should handle the error', (done) => {
128
+ const flow = [
129
+ {
130
+ id: 'n1',
131
+ type: 'crossJoinSap',
132
+ name: 'crossJoinSap',
133
+ wires: [['n2']],
134
+ z: 'flow',
135
+ bodyPost: 'data',
136
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
137
+ },
138
+ { id: 'n2', type: 'helper' },
139
+ ];
140
+ helper.load(crossJoinSap, flow, () => {
141
+ const n2 = helper.getNode('n2');
142
+ const n1 = helper.getNode('n1');
143
+
144
+ const expected = new Error('Custom error');
145
+
146
+ sinon.stub(Support, 'sendRequest').rejects(expected);
147
+
148
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
149
+
150
+ n1.on('call:error', (error) => {
151
+ should.deepEqual(error.args[0], expected);
152
+ done();
153
+ });
154
+ });
155
+ });
156
+ });
@@ -0,0 +1,156 @@
1
+ const should = require('should');
2
+ const helper = require('node-red-node-test-helper');
3
+ const deleteSap = require('../nodes/deleteSap');
4
+ const Context = require('../node_modules/./@node-red/runtime/lib/nodes/context/index');
5
+ const sinon = require('sinon');
6
+ const Support = require('../nodes/support');
7
+
8
+ helper.init(require.resolve('node-red'));
9
+
10
+ describe('deleteSap Node', () => {
11
+ beforeEach((done) => {
12
+ helper.startServer(done);
13
+ });
14
+
15
+ function initContext(done) {
16
+ Context.init({
17
+ contextStorage: {
18
+ memory0: {
19
+ module: 'memory',
20
+ },
21
+ memory1: {
22
+ module: 'memory',
23
+ },
24
+ },
25
+ });
26
+ Context.load().then(function () {
27
+ done();
28
+ });
29
+ }
30
+
31
+ afterEach((done) => {
32
+ helper
33
+ .unload()
34
+ .then(function () {
35
+ return Context.clean({ allNodes: {} });
36
+ })
37
+ .then(function () {
38
+ return Context.close();
39
+ })
40
+ .then(function () {
41
+ helper.stopServer(done);
42
+ });
43
+
44
+ // Restore the default sandbox here
45
+ sinon.restore();
46
+
47
+ // helper.unload();
48
+ // helper.stopServer(done);
49
+ });
50
+
51
+ it('should be loaded', (done) => {
52
+ const flow = [
53
+ {
54
+ id: 'n1',
55
+ type: 'deleteSap',
56
+ name: 'deleteSap',
57
+ wires: [['n2']],
58
+ z: 'flow',
59
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
60
+ },
61
+ ];
62
+
63
+ helper.load(deleteSap, flow, () => {
64
+ initContext(function () {
65
+ const n1 = helper.getNode('n1');
66
+
67
+ // console.log(helper.log().args);
68
+
69
+ // n1.context().flow.set('A', 1, 'memory1', function (error) {
70
+ // console.log(error);
71
+ // });
72
+
73
+ // console.log(n1.context().flow.get('A', 'memory1'));
74
+ // console.log('- - - B- - - -');
75
+
76
+ // n1.id
77
+ // flow.push({
78
+ // [`_YOU_SapServiceLayer_${n1.id}.headers`]:
79
+ // })
80
+
81
+ try {
82
+ // n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Set credentials1' });
83
+ // should.equal(n1.status.calledWith({ fill: 'gray', shape: 'ring', text: 'Missing credentials' }), true);
84
+ n1.should.have.property('name', 'deleteSap');
85
+ done();
86
+ } catch (err) {
87
+ done(err);
88
+ }
89
+ });
90
+ });
91
+ });
92
+
93
+ it('should have correct request with data', (done) => {
94
+ const flow = [
95
+ {
96
+ id: 'n1',
97
+ type: 'deleteSap',
98
+ name: 'deleteSap',
99
+ wires: [['n2']],
100
+ z: 'flow',
101
+ bodyPost: 'data',
102
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
103
+ },
104
+ { id: 'n2', type: 'helper' },
105
+ ];
106
+ helper.load(deleteSap, flow, () => {
107
+ const n2 = helper.getNode('n2');
108
+ const n1 = helper.getNode('n1');
109
+
110
+ sinon.stub(Support, 'sendRequest').resolves({ data: 'ok', status: 200 });
111
+
112
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
113
+
114
+ n2.on('input', (msg) => {
115
+ try {
116
+ msg.should.have.property('_msgid');
117
+ msg.should.have.property('payload', 'ok');
118
+ msg.should.have.property('statusCode', 200);
119
+ done();
120
+ } catch (err) {
121
+ done(err);
122
+ }
123
+ });
124
+ });
125
+ });
126
+
127
+ it('should handle the error', (done) => {
128
+ const flow = [
129
+ {
130
+ id: 'n1',
131
+ type: 'deleteSap',
132
+ name: 'deleteSap',
133
+ wires: [['n2']],
134
+ z: 'flow',
135
+ bodyPost: 'data',
136
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
137
+ },
138
+ { id: 'n2', type: 'helper' },
139
+ ];
140
+ helper.load(deleteSap, flow, () => {
141
+ const n2 = helper.getNode('n2');
142
+ const n1 = helper.getNode('n1');
143
+
144
+ const expected = new Error('Custom error');
145
+
146
+ sinon.stub(Support, 'sendRequest').rejects(expected);
147
+
148
+ n1.receive({ data: { cardCode: '00000001', cardName: '0000001' } });
149
+
150
+ n1.on('call:error', (error) => {
151
+ should.deepEqual(error.args[0], expected);
152
+ done();
153
+ });
154
+ });
155
+ });
156
+ });