@yousolution/node-red-contrib-you-sap-service-layer 0.2.2 → 0.2.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.
Files changed (49) hide show
  1. package/.prettierrc +6 -6
  2. package/.vscode/launch.json +23 -23
  3. package/CHANGELOG.md +57 -52
  4. package/README.md +126 -126
  5. package/docker-compose.yml +14 -14
  6. package/examples/example.json +625 -625
  7. package/nodes/SQLQuery.html +179 -179
  8. package/nodes/SQLQuery.js +46 -46
  9. package/nodes/authenticateSap.html +146 -146
  10. package/nodes/authenticateSap.js +129 -129
  11. package/nodes/closeSap.html +128 -97
  12. package/nodes/closeSap.js +36 -36
  13. package/nodes/createSQLQuery.html +165 -165
  14. package/nodes/createSQLQuery.js +70 -70
  15. package/nodes/createSap.html +391 -391
  16. package/nodes/createSap.js +40 -40
  17. package/nodes/crossJoinSap.html +394 -394
  18. package/nodes/crossJoinSap.js +37 -37
  19. package/nodes/deleteSap.html +406 -406
  20. package/nodes/deleteSap.js +35 -35
  21. package/nodes/getSap.html +427 -427
  22. package/nodes/getSap.js +34 -34
  23. package/nodes/listSap.html +402 -402
  24. package/nodes/listSap.js +37 -37
  25. package/nodes/manageErrors.js +38 -38
  26. package/nodes/manipulateEntitySap.html +176 -176
  27. package/nodes/manipulateEntitySap.js +46 -46
  28. package/nodes/nextLink.html +100 -100
  29. package/nodes/nextLink.js +18 -18
  30. package/nodes/patchSap.html +424 -424
  31. package/nodes/patchSap.js +40 -40
  32. package/nodes/serviceSap.html +206 -206
  33. package/nodes/serviceSap.js +39 -39
  34. package/nodes/support.js +363 -363
  35. package/package.json +65 -65
  36. package/resources/entities.json +59 -59
  37. package/resources/services.json +343 -343
  38. package/test/authenticateSap.spec.js +307 -307
  39. package/test/closeSap.spec.js +156 -156
  40. package/test/createSQLQuery.spec.js +174 -174
  41. package/test/createSap.spec.js +183 -183
  42. package/test/crossJoinSap.spec.js +156 -156
  43. package/test/deleteSap.spec.js +156 -156
  44. package/test/getSap.spec.js +156 -156
  45. package/test/listSap.spec.js +156 -156
  46. package/test/manipulateEntitySap.spec.js +191 -191
  47. package/test/patchSap.spec.js +184 -184
  48. package/test/serviceSap.spec.js +170 -170
  49. package/test/support.spec.js +1419 -1419
@@ -1,156 +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
- });
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
+ });
@@ -1,174 +1,174 @@
1
- const should = require('should');
2
- const helper = require('node-red-node-test-helper');
3
- const createSQLQuery = require('../nodes/createSQLQuery');
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('createSQLQuery 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: 'createSQLQuery',
56
- name: 'createSQLQuery',
57
- wires: [['n2']],
58
- z: 'flow',
59
- rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
60
- },
61
- ];
62
-
63
- helper.load(createSQLQuery, flow, () => {
64
- initContext(function () {
65
- const n1 = helper.getNode('n1');
66
- try {
67
- n1.should.have.property('name', 'createSQLQuery');
68
- done();
69
- } catch (err) {
70
- done(err);
71
- }
72
- });
73
- });
74
- });
75
-
76
- it('should have correct request with data', (done) => {
77
- const flow = [
78
- {
79
- id: 'n1',
80
- type: 'createSQLQuery',
81
- name: 'createSQLQuery',
82
- wires: [['n2']],
83
- z: 'flow',
84
- sqlCode: 'sqlCode',
85
- sqlName: 'sqlName',
86
- sqlText: 'sqlText',
87
- rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
88
- },
89
- { id: 'n2', type: 'helper' },
90
- ];
91
- helper.load(createSQLQuery, flow, () => {
92
- const n2 = helper.getNode('n2');
93
- const n1 = helper.getNode('n1');
94
-
95
- sinon.stub(Support, 'sendRequest').resolves('ok');
96
-
97
- n1.receive({ sqlCode: 'code', sqlName: 'name', sqlText: 'text' });
98
-
99
- n2.on('input', (msg) => {
100
- try {
101
- msg.should.have.property('_msgid');
102
- msg.should.have.property('payload', 'ok');
103
- done();
104
- } catch (err) {
105
- done(err);
106
- }
107
- });
108
- });
109
- });
110
-
111
- // it('should have request without data', (done) => {
112
- // const flow = [
113
- // {
114
- // id: 'n1',
115
- // type: 'serviceSap',
116
- // name: 'serviceSap',
117
- // wires: [['n2']],
118
- // z: 'flow',
119
- // bodyPost: 'data',
120
- // rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
121
- // },
122
- // { id: 'n2', type: 'helper' },
123
- // ];
124
- // helper.load(serviceSap, flow, () => {
125
- // const n2 = helper.getNode('n2');
126
- // const n1 = helper.getNode('n1');
127
-
128
- // sinon.stub(Support, 'sendRequest').resolves('ok');
129
- // n1.receive({});
130
-
131
- // n2.on('input', (msg) => {
132
- // try {
133
- // msg.should.have.property('_msgid');
134
- // msg.should.have.property('payload', 'ok');
135
- // done();
136
- // } catch (err) {
137
- // done(err);
138
- // }
139
- // });
140
- // });
141
- // });
142
-
143
- it('should handle the error', (done) => {
144
- const flow = [
145
- {
146
- id: 'n1',
147
- type: 'createSQLQuery',
148
- name: 'createSQLQuery',
149
- wires: [['n2']],
150
- z: 'flow',
151
- sqlCode: 'sqlCode',
152
- sqlName: 'sqlName',
153
- sqlText: 'sqlText',
154
- rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
155
- },
156
- { id: 'n2', type: 'helper' },
157
- ];
158
- helper.load(createSQLQuery, flow, () => {
159
- const n2 = helper.getNode('n2');
160
- const n1 = helper.getNode('n1');
161
-
162
- const expected = new Error('Missing mandatory params: SqlCode.');
163
-
164
- sinon.stub(Support, 'sendRequest').rejects(expected);
165
-
166
- n1.receive({ sqlName: 'name', sqlText: 'text' });
167
-
168
- n1.on('call:error', (error) => {
169
- should.deepEqual(error.args[0], expected);
170
- done();
171
- });
172
- });
173
- });
174
- });
1
+ const should = require('should');
2
+ const helper = require('node-red-node-test-helper');
3
+ const createSQLQuery = require('../nodes/createSQLQuery');
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('createSQLQuery 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: 'createSQLQuery',
56
+ name: 'createSQLQuery',
57
+ wires: [['n2']],
58
+ z: 'flow',
59
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
60
+ },
61
+ ];
62
+
63
+ helper.load(createSQLQuery, flow, () => {
64
+ initContext(function () {
65
+ const n1 = helper.getNode('n1');
66
+ try {
67
+ n1.should.have.property('name', 'createSQLQuery');
68
+ done();
69
+ } catch (err) {
70
+ done(err);
71
+ }
72
+ });
73
+ });
74
+ });
75
+
76
+ it('should have correct request with data', (done) => {
77
+ const flow = [
78
+ {
79
+ id: 'n1',
80
+ type: 'createSQLQuery',
81
+ name: 'createSQLQuery',
82
+ wires: [['n2']],
83
+ z: 'flow',
84
+ sqlCode: 'sqlCode',
85
+ sqlName: 'sqlName',
86
+ sqlText: 'sqlText',
87
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
88
+ },
89
+ { id: 'n2', type: 'helper' },
90
+ ];
91
+ helper.load(createSQLQuery, flow, () => {
92
+ const n2 = helper.getNode('n2');
93
+ const n1 = helper.getNode('n1');
94
+
95
+ sinon.stub(Support, 'sendRequest').resolves('ok');
96
+
97
+ n1.receive({ sqlCode: 'code', sqlName: 'name', sqlText: 'text' });
98
+
99
+ n2.on('input', (msg) => {
100
+ try {
101
+ msg.should.have.property('_msgid');
102
+ msg.should.have.property('payload', 'ok');
103
+ done();
104
+ } catch (err) {
105
+ done(err);
106
+ }
107
+ });
108
+ });
109
+ });
110
+
111
+ // it('should have request without data', (done) => {
112
+ // const flow = [
113
+ // {
114
+ // id: 'n1',
115
+ // type: 'serviceSap',
116
+ // name: 'serviceSap',
117
+ // wires: [['n2']],
118
+ // z: 'flow',
119
+ // bodyPost: 'data',
120
+ // rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
121
+ // },
122
+ // { id: 'n2', type: 'helper' },
123
+ // ];
124
+ // helper.load(serviceSap, flow, () => {
125
+ // const n2 = helper.getNode('n2');
126
+ // const n1 = helper.getNode('n1');
127
+
128
+ // sinon.stub(Support, 'sendRequest').resolves('ok');
129
+ // n1.receive({});
130
+
131
+ // n2.on('input', (msg) => {
132
+ // try {
133
+ // msg.should.have.property('_msgid');
134
+ // msg.should.have.property('payload', 'ok');
135
+ // done();
136
+ // } catch (err) {
137
+ // done(err);
138
+ // }
139
+ // });
140
+ // });
141
+ // });
142
+
143
+ it('should handle the error', (done) => {
144
+ const flow = [
145
+ {
146
+ id: 'n1',
147
+ type: 'createSQLQuery',
148
+ name: 'createSQLQuery',
149
+ wires: [['n2']],
150
+ z: 'flow',
151
+ sqlCode: 'sqlCode',
152
+ sqlName: 'sqlName',
153
+ sqlText: 'sqlText',
154
+ rules: [{ t: 'set', p: 'payload', to: '#:(memory1)::flowValue', tot: 'flow' }],
155
+ },
156
+ { id: 'n2', type: 'helper' },
157
+ ];
158
+ helper.load(createSQLQuery, flow, () => {
159
+ const n2 = helper.getNode('n2');
160
+ const n1 = helper.getNode('n1');
161
+
162
+ const expected = new Error('Missing mandatory params: SqlCode.');
163
+
164
+ sinon.stub(Support, 'sendRequest').rejects(expected);
165
+
166
+ n1.receive({ sqlName: 'name', sqlText: 'text' });
167
+
168
+ n1.on('call:error', (error) => {
169
+ should.deepEqual(error.args[0], expected);
170
+ done();
171
+ });
172
+ });
173
+ });
174
+ });