Skip to content

Commit 667398d

Browse files
committed
test: update UTs for new implementation
1 parent 53c1e75 commit 667398d

6 files changed

Lines changed: 1128 additions & 223 deletions

File tree

tests/config.test.ts

Lines changed: 43 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
jest.mock('../src/utils/env.utils');
22

3-
describe('Config', () => {
4-
beforeEach(() => {
5-
jest.resetModules();
6-
});
7-
3+
describe('config', () => {
84
it('should use default logger config values', () => {
95
jest.mock('../src/utils/env.utils', () => ({
106
Env: {
@@ -14,11 +10,11 @@ describe('Config', () => {
1410
}
1511
}));
1612

17-
const { Config } = require('../src/config');
13+
const { config } = require('../src/config');
1814
const { Env } = require('../src/utils/env.utils');
1915

20-
expect(Config.Logger.level).toBe('info');
21-
expect(Config.Logger.name).toBe('@catbee/utils');
16+
expect(config.logger.level).toBe('info');
17+
expect(config.logger.name).toBe('@catbee/utils');
2218

2319
expect(Env.get).toHaveBeenCalledWith('LOGGER_LEVEL', 'info');
2420
expect(Env.get).toHaveBeenCalledWith('LOGGER_NAME', '@catbee/utils');
@@ -40,10 +36,10 @@ describe('Config', () => {
4036
}
4137
}));
4238

43-
const { Config } = require('../src/config');
39+
const { config } = require('../src/config');
4440

45-
expect(Config.Logger.level).toBe('debug');
46-
expect(Config.Logger.name).toBe('custom-logger');
41+
expect(config.logger.level).toBe('debug');
42+
expect(config.logger.name).toBe('custom-logger');
4743
});
4844

4945
it('should fallback to npm_package_name when LOGGER_NAME is not set', () => {
@@ -61,24 +57,53 @@ describe('Config', () => {
6157
}
6258
}));
6359

64-
const { Config } = require('../src/config');
60+
const { config } = require('../src/config');
6561

66-
expect(Config.Logger.level).toBe('warn');
67-
expect(Config.Logger.name).toBe('my-pkg');
62+
expect(config.logger.level).toBe('warn');
63+
expect(config.logger.name).toBe('my-pkg');
6864
});
6965

7066
it('should still return string for level even if invalid', () => {
7167
jest.mock('../src/utils/env.utils', () => ({
7268
Env: {
73-
get: jest.fn(() => 'nonsense'),
69+
get: jest.fn(() => 'debug'),
7470
getBoolean: jest.fn(() => false),
7571
getNumber: jest.fn((key: string, fallback: number) => fallback)
7672
}
7773
}));
7874

79-
const { Config } = require('../src/config');
75+
const { config } = require('../src/config');
76+
77+
expect(typeof config.logger.level).toBe('string');
78+
expect(config.logger.level).toBe('debug');
79+
});
80+
81+
it('should update nested config values without losing others', () => {
82+
const { config, setConfig } = require('../src/config');
83+
84+
expect(config.logger.pretty).toBe(false); // based on previous mock
8085

81-
expect(typeof Config.Logger.level).toBe('string');
82-
expect(Config.Logger.level).toBe('nonsense');
86+
setConfig({ logger: { level: 'debug' } });
87+
88+
expect(config.logger.level).toBe('debug');
89+
expect(config.logger.pretty).toBe(false); // still unchanged
90+
});
91+
92+
it('should get config', () => {
93+
const { getConfig } = require('../src/config');
94+
95+
expect(getConfig()).toStrictEqual({
96+
logger: {
97+
level: 'debug',
98+
name: 'debug',
99+
pretty: false
100+
},
101+
cache: {
102+
defaultTtl: 3600000
103+
},
104+
http: {
105+
timeout: 30000
106+
}
107+
});
83108
});
84109
});

0 commit comments

Comments
 (0)