Skip to content

Commit d5047fb

Browse files
committed
Implement bunyan-live-logger
1 parent 8b15346 commit d5047fb

File tree

4 files changed

+93
-19
lines changed

4 files changed

+93
-19
lines changed

Readme.md

+21-5
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[![NPM Version][npm-image]][npm-url]
2-
#Open-Fin-TS-JS-Client
2+
# Open-Fin-TS-JS-Client
33

44
FinTS/HBCI ist eine standardisierte Schnittstelle zur Kommunikation mit Banken von der Deutschen Kreditwirtschaft (DK).
55
Es existieren derzeit drei Versionen der Schnittstelle.
6-
* HBCI 2.2 --> keine Unterstützung
6+
* HBCI 2.2 --> keine Unterstützung (geplant)
77
* FinTS 3.0 (noch weites gehend auf HBCI basierend) --> Diese API unterstützt diese Version.
88
* FinTS 4.1 (neuste auf XML basierend) --> keine Unterstützung (noch keine große Verbreitung)
99

@@ -12,11 +12,12 @@ Der Open-Fin-TS-JS-Client unterstützt zurzeit nur die Version FinTS 3.0 mit der
1212
Es existieren nur wenige Implementierungen für HBCI bzw. FinTS.
1313
Zurzeit (2015) nur eine für Javascript, diese ist allerdings kommerziell. Dieses Projekt versucht diese Lücke zu schließen.
1414

15-
###Unterstützte Geschäftsvorfälle
15+
### Unterstützte Geschäftsvorfälle
1616
* SEPA Kontoinformationen laden (HKSPA)
1717
* Kontoumsätze laden (HKKAZ)
18+
* Salden laden (HKSAL)
1819

19-
###Unterstützte Plattformen
20+
### Unterstützte Plattformen
2021
* Node-JS
2122
* Browserfy (In Arbeit) - allerdings ist hier ein Umweg notwendig wegen der Cross-origin resource sharing Problematik in normalen Browsern
2223
* weitere Plattformen mit Anpassungen denkbar
@@ -252,7 +253,20 @@ Um die Tests zu starten im Verzeichnis des Projekts folgenden Befehl in der Kons
252253
```shell
253254
npm test
254255
```
255-
Für die Tests wird der interne FinTS Server verwendet.
256+
Für die Tests wird der interne FinTS Server verwendet und die in der Datei credentials.js konfigurierten FinTS Real Server.
257+
credentials.js
258+
```js
259+
module.exports = {
260+
bankenliste:{
261+
'12345678':{'blz':12345678,'url':"http://localhost:3000/cgi-bin/hbciservlet"},
262+
"undefined":{'url':""}
263+
},
264+
blz:12345678,
265+
user:"maxmuster",
266+
pin:"12345",
267+
bunyan_live_logger:true
268+
};
269+
```
256270
257271
Um ein Code-Coverage Test durchzuführen folgenden Befehl im Paket eingeben.
258272
```shell
@@ -279,6 +293,8 @@ Für eine bessere Darstellung empfiehlt sich Bunyan CLI.
279293
```shell
280294
node examples/zeige_kontoumsaetze.js log | bunyan -l trace
281295
```
296+
Alternativ können mit dem Bunyan Live Logger die Logs live dargestellt werden. Für die TestCases kann durch credentials.js und dem Attribut bunyan_live_logger:true der Live Logger direkt gestartet werden.
297+
282298
283299
## Links
284300

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "open-fin-ts-js-client",
3-
"version": "1.1.0",
3+
"version": "1.2.0",
44
"description": "JS Client für FinTS/HBCI.",
55
"main": "index.js",
66
"directories": {
@@ -49,6 +49,7 @@
4949
"bunyan": "~1.3.3"
5050
},
5151
"devDependencies": {
52+
"bunyan-live-logger": "~1.0.2",
5253
"mocha": "2.1.0",
5354
"istanbul": "~0.3.5",
5455
"should": "4.4.2",

test/test_1.js

+42-11
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,22 @@ var textBody = require("body");
2525
var FinTSServer = require("../dev/FinTSServer.js");
2626
var FinTSClient = require("../");
2727
var should = require('should');
28+
var config = null;
29+
try{
30+
config = require("./credentials.js");
31+
}catch(e){
32+
33+
}
34+
var bunyan = require("bunyan");
35+
var live = require("bunyan-live-logger");
36+
var g_log = null;
37+
38+
var logger = function(n){
39+
if(g_log)
40+
return g_log.child({testcase: n});
41+
else
42+
return null;
43+
};
2844

2945
var mocha_catcher = function(done,cb){
3046
return function(){
@@ -79,12 +95,27 @@ describe('testserver',function(){
7995
bankenliste['12345678'].url = "http://"+addr.address + ":" + addr.port+"/cgi-bin/hbciservlet";
8096
myFINTSServer.my_url = bankenliste['12345678'].url;
8197
myFINTSServer.my_host = addr.address + ":" + addr.port;
82-
done();
98+
// Logger
99+
if(config&&config.bunyan_live_logger){
100+
g_log = bunyan.createLogger({
101+
name: 'testcases - withtestserver',
102+
src:true,
103+
streams: [
104+
{
105+
level: 'trace',
106+
stream: live({ready_cb:function(){done();}}),
107+
type:"raw"
108+
}
109+
]
110+
});
111+
}else{
112+
done();
113+
}
83114
});;
84115
});
85116

86117
it('Test 1 - MsgInitDialog',function(done){
87-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
118+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 1"));
88119
var old_url = client.dest_url;
89120
client.MsgInitDialog(mocha_catcher(done,function(error,recvMsg,has_neu_url){
90121
if(error)
@@ -100,7 +131,7 @@ describe('testserver',function(){
100131
}));
101132
});
102133
it('Test 2 - MsgInitDialog wrong user',function(done){
103-
var client = new FinTSClient(12345678,"test2","1234",bankenliste);
134+
var client = new FinTSClient(12345678,"test2","1234",bankenliste,logger("Test 2"));
104135
var old_url = client.dest_url;
105136
client.MsgInitDialog(mocha_catcher(done,function(error,recvMsg,has_neu_url){
106137
if(error){
@@ -111,7 +142,7 @@ describe('testserver',function(){
111142
}));
112143
});
113144
it('Test 3 - MsgInitDialog wrong pin',function(done){
114-
var client = new FinTSClient(12345678,"test1","12341",bankenliste);
145+
var client = new FinTSClient(12345678,"test1","12341",bankenliste,logger("Test 3"));
115146
var old_url = client.dest_url;
116147
client.MsgInitDialog(mocha_catcher(done,function(error,recvMsg,has_neu_url){
117148
if(error){
@@ -122,7 +153,7 @@ describe('testserver',function(){
122153
}));
123154
});
124155
it('Test 4 - MsgEndDialog',function(done){
125-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
156+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 4"));
126157
var old_url = client.dest_url;
127158
client.MsgInitDialog(mocha_catcher(done,function(error,recvMsg,has_neu_url){
128159
if(error){
@@ -137,7 +168,7 @@ describe('testserver',function(){
137168
}));
138169
});
139170
it('Test 5 - MsgRequestSepa',function(done){
140-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
171+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 5"));
141172
client.MsgInitDialog(mocha_catcher(done,function(error,recvMsg,has_neu_url){
142173
if(error){
143174
throw error;
@@ -161,7 +192,7 @@ describe('testserver',function(){
161192
}));
162193
});
163194
it('Test 5.1 - MsgRequestSepa - failed connection',function(done){
164-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
195+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 5.1"));
165196
client.MsgInitDialog(mocha_catcher(done,function(error,recvMsg,has_neu_url){
166197
if(error){
167198
throw error;
@@ -183,7 +214,7 @@ describe('testserver',function(){
183214
}));
184215
});
185216
it('Test 6 - EstablishConnection',function(done){
186-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
217+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 6"));
187218
client.EstablishConnection(mocha_catcher(done,function(error){
188219
if(error){
189220
throw error;
@@ -202,7 +233,7 @@ describe('testserver',function(){
202233
}));
203234
});
204235
it('Test 7 - MsgGetKontoUmsaetze',function(done){
205-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
236+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 7"));
206237
client.EstablishConnection(mocha_catcher(done,function(error){
207238
if(error){
208239
throw error;
@@ -231,7 +262,7 @@ describe('testserver',function(){
231262
myFINTSServer.hikas_2_mode = true;
232263
});
233264
it('Test 7.1 - MsgGetKontoUmsaetze - mit Aufsetzpunkt',function(done){
234-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
265+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 7.1"));
235266
client.EstablishConnection(mocha_catcher(done,function(error){
236267
if(error){
237268
throw error;
@@ -260,7 +291,7 @@ describe('testserver',function(){
260291
});
261292
});
262293
it('Test 8 - MsgGetSaldo',function(done){
263-
var client = new FinTSClient(12345678,"test1","1234",bankenliste);
294+
var client = new FinTSClient(12345678,"test1","1234",bankenliste,logger("Test 8"));
264295
client.EstablishConnection(mocha_catcher(done,function(error){
265296
if(error){
266297
throw error;

test/test_real.js

+28-2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,17 @@ var mocha_catcher = function(done,cb){
4242
};
4343
};
4444

45+
var bunyan = require("bunyan");
46+
var live = require("bunyan-live-logger");
47+
var g_log = null;
48+
49+
var logger = function(n){
50+
if(g_log)
51+
return g_log.child({testcase: n});
52+
else
53+
return null;
54+
};
55+
4556
describe('tests_real',function(){
4657
this.timeout(20*60*1000);
4758
var myFINTSServer = null;
@@ -56,7 +67,8 @@ describe('tests_real',function(){
5667
},
5768
blz:12345678,
5869
user:"",
59-
pin:""
70+
pin:"",
71+
bunyan_live_logger:true
6072
};
6173
*/
6274
credentials.should.have.property("bankenliste");
@@ -65,7 +77,21 @@ describe('tests_real',function(){
6577
credentials.should.have.property("blz");
6678
should(credentials.user).not.equal("");
6779
should(credentials.pin).not.equal("");
68-
done();
80+
if(credentials&&credentials.bunyan_live_logger){
81+
g_log = bunyan.createLogger({
82+
name: 'testcases - tests_real',
83+
src:true,
84+
streams: [
85+
{
86+
level: 'trace',
87+
stream: live({ready_cb:function(){done();}}),
88+
type:"raw"
89+
}
90+
]
91+
});
92+
}else{
93+
done();
94+
}
6995
});
7096

7197
it('Test 1 - MsgInitDialog',function(done){

0 commit comments

Comments
 (0)