8000 fix(test): moved and simplified last two vows tests · xcj-coding/log4js-node@4b41669 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4b41669

Browse files
author
Gareth Jones
committed
fix(test): moved and simplified last two vows tests
1 parent c491929 commit 4b41669

File tree

4 files changed

+89
-265
lines changed

4 files changed

+89
-265
lines changed

test/tap/configureNoLevels-test.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
'use strict';
2+
3+
// This test shows unexpected behaviour for log4js.configure() in log4js-node@0.4.3 and earlier:
4+
// 1) log4js.configure(), log4js.configure(null),
5+
// log4js.configure({}), log4js.configure(<some object with no levels prop>)
6+
// all set all loggers levels to trace, even if they were previously set to something else.
7+
// 2) log4js.configure({levels:{}}), log4js.configure({levels: {foo:
8+
// bar}}) leaves previously set logger levels intact.
9+
//
10+
const test = require('tap').test;
11+
12+
// setup the configurations we want to test
13+
const configs = [
14+
undefined,
15+
null,
16+
{},
17+
{ foo: 'bar' },
18+
{ levels: null },
19+
{ levels: {} },
20+
{ levels: { foo: 'bar' } },
21+
{ levels: { A: 'INFO' } }
22+
];
23+
24+
test('log4js dodgy config', (batch) => {
25+
const log4js = require('../../lib/log4js');
26+
const logger = log4js.getLogger('test-logger');
27+
const error = log4js.levels.ERROR;
28+
logger.setLevel('ERROR');
29+
30+
configs.forEach((config) => {
31+
batch.test(`config of ${config} should not change logger level`, (t) => {
32+
log4js.configure(config);
33+
t.equal(logger.level, error);
34+
t.end();
35+
});
36+
});
37+
batch.end();
38+
});

test/tap/setLevel-asymmetry-test.js

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
'use strict';
2+
3+
/* jshint loopfunc: true */
4+
// This test shows an asymmetry between setLevel and isLevelEnabled
5+
// (in log4js-node@0.4.3 and earlier):
6+
// 1) setLevel("foo") works, but setLevel(log4js.levels.foo) silently
7+
// does not (sets the level to TRACE).
8+
// 2) isLevelEnabled("foo") works as does isLevelEnabled(log4js.levels.foo).
9+
//
10+
11+
const test = require('tap').test;
12+
const log4js = require('../../lib/log4js');
13+
14+
const logger = log4js.getLogger('test-setLevel-asymmetry');
15+
16+
// Define the array of levels as string to iterate over.
17+
const strLevels = ['Trace', 'Debug', 'Info', 'Warn', 'Error', 'Fatal'];
18+
const log4jsLevels = strLevels.map(log4js.levels.toLevel);
19+
20+
test('log4js setLevel', (batch) => {
21+
strLevels.forEach((strLevel) => {
22+
batch.test(`is called with a ${strLevel} as string`, (t) => {
23+
const log4jsLevel = log4js.levels.toLevel(strLevel);
24+
25+
t.test('should convert string to level correctly', (assert) => {
26+
logger.setLevel(strLevel);
27+
log4jsLevels.forEach((level) => {
28+
assert.equal(
29+
logger.isLevelEnabled(level),
30+
log4jsLevel.isLessThanOrEqualTo(level)
31+
);
32+
});
33+
assert.end();
34+
});
35+
36+
t.test('should also accept a Level', (assert) => {
37+
logger.setLevel(log4jsLevel);
38+
log4jsLevels.forEach((level) => {
39+
assert.equal(
40+
logger.isLevelEnabled(level),
41+
log4jsLevel.isLessThanOrEqualTo(level)
42+
);
43+
});
44+
assert.end();
45+
});
46+
47+
t.end();
48+
});
49+
});
50+
batch.end();
51+
});

test/vows/configureNoLevels-test.js

Lines changed: 0 additions & 175 deletions
This file was deleted.

test/vows/setLevel-asymmetry-test.js

Lines changed: 0 additions & 90 deletions
This file was deleted.

0 commit comments

Comments
 (0)
0