Skip to content

Commit 2b52063

Browse files
Merge branch 'logger_refactor_baseline' into logger_extract_strings
2 parents d6b71d3 + 14cc78a commit 2b52063

22 files changed

Lines changed: 359 additions & 426 deletions

src/integrations/ga/__tests__/SplitToGa.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { SplitIO } from '../../../types';
22
import { SPLIT_IMPRESSION, SPLIT_EVENT } from '../../../utils/constants';
33

44
// Mocks
5-
import { loggerMock, mockClear } from '../../../logger/__tests__/sdkLogger.mock';
5+
import { loggerMock } from '../../../logger/__tests__/sdkLogger.mock';
66
import { gaMock, gaRemove } from './gaMock';
77

88
// Test target
@@ -79,7 +79,7 @@ describe('SplitToGa', () => {
7979
});
8080

8181
test('SplitToGa.getGa', () => {
82-
mockClear();
82+
loggerMock.mockClear();
8383

8484
const { ga } = gaMock();
8585
expect(SplitToGa.getGa()).toBe(ga); // should return ga command queue if it exists

src/logger/__tests__/index.spec.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,7 @@ test('SPLIT LOGGER / Logger class shape', () => {
3333
expect(typeof logger.info).toBe('function'); // instance.info should be a method.
3434
expect(typeof logger.warn).toBe('function'); // instance.warn should be a method.
3535
expect(typeof logger.error).toBe('function'); // instance.error should be a method.
36-
expect(typeof logger.setLogLevel).toBe('function'); // @ts-ignore // instance.setLogLevel should be a method.
37-
expect(typeof logger.options.logLevel).toBe('string'); // @ts-ignore // instance.options.logLevel should be a string.
38-
expect(typeof logger.options.showLevel).toBe('boolean'); // instance.options.showLevel should be a boolean.
39-
36+
expect(typeof logger.setLogLevel).toBe('function'); // instance.setLogLevel should be a method.
4037
});
4138

4239
const LOG_LEVELS_IN_ORDER = ['DEBUG', 'INFO', 'WARN', 'ERROR', 'NONE'];

src/logger/__tests__/sdkLogger.mock.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ export const loggerMock = {
44
error: jest.fn(),
55
debug: jest.fn(),
66
info: jest.fn(),
7-
setLogLevel: jest.fn()
8-
};
7+
setLogLevel: jest.fn(),
98

10-
export function mockClear() {
11-
loggerMock.warn.mockClear();
12-
loggerMock.error.mockClear();
13-
loggerMock.debug.mockClear();
14-
loggerMock.info.mockClear();
15-
loggerMock.setLogLevel.mockClear();
16-
}
9+
mockClear() {
10+
this.warn.mockClear();
11+
this.error.mockClear();
12+
this.debug.mockClear();
13+
this.info.mockClear();
14+
this.setLogLevel.mockClear();
15+
}
16+
};
Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
11
import { createLoggerAPI } from '../sdkLogger';
22
import { Logger, LogLevels } from '../index';
33

4-
test('createLoggerAPI / methods and props', () => {
5-
const logger = new Logger('category', {});
4+
test('LoggerAPI / methods and props', () => {
5+
// creates a LoggerAPI instance
6+
const logger = new Logger('category');
7+
const API = createLoggerAPI(logger);
68

7-
expect(typeof createLoggerAPI).toBe('function'); // Importing the module should return a function.
9+
expect(typeof API).toBe('object'); // Our logger should expose an API object.
810

9-
const loggerAPI = createLoggerAPI(logger);
10-
11-
expect(typeof loggerAPI).toBe('object'); // Our logger should expose an API object.
12-
13-
expect(typeof loggerAPI.setLogLevel).toBe('function'); // API object should have setLogLevel method.
14-
loggerAPI.setLogLevel('INFO'); // @ts-ignore
11+
expect(typeof API.setLogLevel).toBe('function'); // API object should have setLogLevel method.
12+
API.setLogLevel('INFO'); // @ts-ignore, accessing private prop
1513
expect(logger.options.logLevel).toBe('INFO'); // calling setLogLevel should update the log level.
16-
// @ts-ignore
17-
loggerAPI.setLogLevel('warn'); // @ts-ignore
14+
// @ts-ignore, passing wrong type
15+
API.setLogLevel('warn'); // @ts-ignore, accessing private prop
1816
expect(logger.options.logLevel).toBe('INFO'); // calling setLogLevel with an invalid value should not update the log level.
1917

20-
expect(typeof loggerAPI.enable).toBe('function'); // API object should have enable method.
21-
loggerAPI.enable(); // @ts-ignore
18+
expect(typeof API.enable).toBe('function'); // API object should have enable method.
19+
API.enable(); // @ts-ignore, accessing private prop
2220
expect(logger.options.logLevel).toBe('DEBUG'); // calling enable should update logger log level to DEBUG.
2321

24-
expect(typeof loggerAPI.disable).toBe('function'); // API object should have disable method.
25-
loggerAPI.disable(); // @ts-ignore
22+
expect(typeof API.disable).toBe('function'); // API object should have disable method.
23+
API.disable(); // @ts-ignore, accessing private prop
2624
expect(logger.options.logLevel).toBe('NONE'); // calling disable should update logger log level to NONE.
2725

28-
expect(loggerAPI.LogLevel).toEqual(LogLevels); // API object should have LogLevel prop including all available levels.
26+
expect(API.LogLevel).toEqual(LogLevels); // API object should have LogLevel prop including all available levels.
2927

3028
});

src/readiness/__tests__/sdkReadinessManager.spec.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// @ts-nocheck
2-
import { loggerMock, mockClear } from '../../logger/__tests__/sdkLogger.mock';
2+
import { loggerMock } from '../../logger/__tests__/sdkLogger.mock';
33
import { IEventEmitter } from '../../types';
44
import { SDK_READY, SDK_READY_FROM_CACHE, SDK_READY_TIMED_OUT, SDK_UPDATE } from '../constants';
55
import sdkReadinessManagerFactory from '../sdkReadinessManager';
@@ -34,9 +34,7 @@ function emitTimeoutEvent(readinessManager: IReadinessManager) {
3434

3535
describe('SDK Readiness Manager - Event emitter', () => {
3636

37-
afterEach(() => {
38-
mockClear();
39-
});
37+
afterEach(() => { loggerMock.mockClear(); });
4038

4139
test('Providing the gate object to get the SDK status interface that manages events', () => {
4240
expect(typeof sdkReadinessManagerFactory).toBe('function'); // The module exposes a function.
@@ -256,7 +254,7 @@ describe('SDK Readiness Manager - Ready promise', () => {
256254
await ready.then(
257255
() => {
258256
expect('It should be a resolved promise when the SDK is ready, even after an SDK timeout.');
259-
mockClear();
257+
loggerMock.mockClear();
260258
testPassedCount++;
261259
expect(testPassedCount).toBe(5);
262260
done();

0 commit comments

Comments
 (0)