This repository has been archived by the owner on Sep 14, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
111 lines (94 loc) · 3.15 KB
/
test.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
const {expect} = require('chai');
const {describe, it} = require('mocha');
const mock = require('mock-fs');
const fs = require('fs');
const separator = require('os').EOL;
const loglevel = require('loglevel');
const filesave = require('./index');
describe('loglevel-filesave', function() {
beforeEach(function() {
mock({});
});
afterEach(function() {
mock.restore();
});
it('should log all messages', function() {
const logger = loglevel.getLogger('test');
filesave(logger, {
file: 'basicTest.log',
level: logger.levels.TRACE
});
logger.error('Test');
fs.accessSync('basicTest.log'); // Will throw if it doesn't exist
expect(fs.readFileSync('basicTest.log', 'utf8')).to.equal('error: Test' + separator);
});
it('should use a string prefix', function() {
const logger = loglevel.getLogger('test');
filesave(logger, {
file: 'stringPrefixTest.log',
level: logger.levels.TRACE,
prefix: 'Foo!'
});
logger.error('Test');
fs.accessSync('stringPrefixTest.log'); // Will throw if it doesn't exist
expect(fs.readFileSync('stringPrefixTest.log', 'utf8')).to.equal('Foo!Test' + separator);
});
it('should use a function prefix', function() {
const logger = loglevel.getLogger('test');
filesave(logger, {
file: 'functionPrefixTest.log',
level: logger.levels.TRACE,
prefix: (methodName, message) => `[${methodName}]: ${message}`
});
logger.error('Test');
fs.accessSync('functionPrefixTest.log'); // Will throw if it doesn't exist
expect(fs.readFileSync('functionPrefixTest.log', 'utf8')).to.equal('[error]: Test' + separator);
});
it('should use a custom separator', function() {
const logger = loglevel.getLogger('test');
filesave(logger, {
file: 'customSeparatorTest.log',
level: logger.levels.TRACE,
separator: '.'
});
logger.error('Test');
fs.accessSync('customSeparatorTest.log'); // Will throw if it doesn't exist
expect(fs.readFileSync('customSeparatorTest.log', 'utf8')).to.equal('error: Test.');
});
it('should use sync methods', function() {
const logger = loglevel.getLogger('test');
filesave(logger, {
file: 'syncTest.log',
level: logger.levels.TRACE
});
logger.trace('Trace');
logger.debug('Debug');
logger.info('Info');
logger.warn('Warn');
const messages = [
'trace: Trace',
'debug: Debug',
'info: Info',
'warn: Warn'
];
fs.accessSync('syncTest.log'); // Will throw if it doesn't exist
expect(fs.readFileSync('syncTest.log', 'utf8')).to.equal(messages.join(separator) + separator);
});
it('should log only selected levels', function() {
const logger = loglevel.getLogger('test');
filesave(logger, {
file: 'levelTest.log',
level: logger.levels.INFO
});
logger.trace('Trace');
logger.debug('Debug');
logger.info('Info');
logger.warn('Warn');
const messages = [
'info: Info',
'warn: Warn'
];
fs.accessSync('levelTest.log'); // Will throw if it doesn't exist
expect(fs.readFileSync('levelTest.log', 'utf8')).to.equal(messages.join(separator) + separator);
});
});