-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathlogger.manager.js
140 lines (129 loc) · 5.42 KB
/
logger.manager.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
var describe = require('mocha').describe;
var it = require('mocha').it;
var before = require('mocha').before;
var after = require('mocha').after;
var assert = require('assert');
var rxjs = require("rxjs");
var log_entry = require('../dist/entities/log');
var logger_manager = require('../dist/logger.manager');
var logger_config = require('../dist/entities/LoggerConfig');
describe('LoggerManager', function () {
describe('#LoggerManager()', function () {
it('should create new instance of object with default parameters', function () {
var logger_manager_instance = new logger_manager.LoggerManager();
assert.equal(logger_manager_instance.bufferSize, 0);
assert.equal(logger_manager_instance.pauser$ instanceof rxjs.Subject, true);
assert.equal(logger_manager_instance.flush$ instanceof rxjs.Subject, true);
assert.equal(logger_manager_instance.logBulkObs$ instanceof rxjs.Observable, true);
});
});
describe('#addLogline()', function () {
it('should add log line to queue', function () {
var logger_manager_instance = new logger_manager.LoggerManager();
logger_manager_instance.addLogline(
new log_entry.Log({
threadId: '1234',
severity: log_entry.Severity.debug,
category: 'CORALOGIX',
className: 'Class name',
methodName: 'Method name',
text: 'Test message',
})
);
});
});
describe('#close()', function () {
it('should close logger manager', function () {
var logger_manager_instance = new logger_manager.LoggerManager();
logger_manager_instance.close();
});
});
describe('#flush()', function () {
it('should flush logger manager queue', function () {
var logger_manager_instance = new logger_manager.LoggerManager();
logger_manager_instance.flush();
});
});
describe('#sendBulk()', function () {
it('should send logs bulk to Coralogix', function () {
var logger_manager_instance = new logger_manager.LoggerManager();
logger_manager_instance.config = new logger_config.LoggerConfig({
privateKey: process.env.PRIVATE_KEY,
applicationName: process.env.APP_NAME || 'NodeJS',
subsystemName: process.env.SUBSYSTEM_NAME || 'Test',
debug: false
});
logger_manager_instance.sendBulk([
new log_entry.Log({
threadId: 'Test Message 1',
severity: log_entry.Severity.debug,
category: 'CORALOGIX',
className: 'Class name',
methodName: 'Method name',
text: 'Test message',
}),
new log_entry.Log({
threadId: 'Test Message 2',
severity: log_entry.Severity.debug,
category: 'CORALOGIX',
className: 'Class name',
methodName: 'Method name',
text: 'Test message',
})
]);
});
});
describe('#waitForFlush()', function () {
it('should wait for logs to be sent', function (done) {
var logger_manager_instance = new logger_manager.LoggerManager();
var subject = new rxjs.Subject();
logger_manager_instance.sendBulk = function() {
return subject;
};
logger_manager_instance.addLogline(
new log_entry.Log({
threadId: '1234',
severity: log_entry.Severity.debug,
category: 'CORALOGIX',
className: 'Class name',
methodName: 'Method name',
text: 'Test message',
})
);
var waitForFlush = logger_manager_instance.waitForFlush();
var flushed = false;
waitForFlush.then(function () {
flushed = true;
done(); // we want to make sure the promise fulfills
});
setTimeout(function () {
assert.notEqual(flushed, true, 'does not say logs are flushed when they are not');
subject.next({ body: {}, response: {}});
subject.complete();
}, 0);
});
});
describe('#cleanAfterSend()', function () {
it('should clean logs buffer after sent to Coralogix', function () {
var logger_manager_instance = new logger_manager.LoggerManager();
logger_manager_instance.cleanAfterSend([
new log_entry.Log({
threadId: 'Test Message 1',
severity: log_entry.Severity.debug,
category: 'CORALOGIX',
className: 'Class name',
methodName: 'Method name',
text: 'Test message',
}),
new log_entry.Log({
threadId: 'Test Message 2',
severity: log_entry.Severity.debug,
category: 'CORALOGIX',
className: 'Class name',
methodName: 'Method name',
text: 'Test message',
})
]);
});
});
});