diff --git a/src/Contentpass.test.ts b/src/Contentpass.test.ts index 183d874..7cf318c 100644 --- a/src/Contentpass.test.ts +++ b/src/Contentpass.test.ts @@ -10,6 +10,7 @@ import { SCOPES } from './consts/oidcConsts'; import * as SentryIntegrationModule from './sentryIntegration'; import * as SendStatsModule from './countImpressionUtils/sendStats'; import * as SendPageViewEventModule from './countImpressionUtils/sendPageViewEvent'; +import * as LoggerModule from './logger'; const config: ContentpassConfig = { propertyId: '5803179c-5b9f-40be-9a91-e67e8ea20593', @@ -56,6 +57,7 @@ describe('Contentpass', () => { let oidcAuthStorageMock: OidcAuthStateStorage; let sendStatsSpy: jest.SpyInstance; let sendPageViewEventSpy: jest.SpyInstance; + let enableLoggerSpy: jest.SpyInstance; beforeEach(() => { jest.useFakeTimers({ now: NOW }); @@ -91,6 +93,10 @@ describe('Contentpass', () => { .spyOn(SendPageViewEventModule, 'default') .mockResolvedValue({ ok: true } as any); + enableLoggerSpy = jest + .spyOn(LoggerModule, 'enableLogger') + .mockReturnValue(undefined); + contentpass = new Contentpass(config); }); @@ -187,6 +193,15 @@ describe('Contentpass', () => { hasValidSubscription: true, }); }); + + it('should enable logger if logLevel is set', () => { + contentpass = new Contentpass({ + ...config, + logLevel: 'info', + }); + + expect(enableLoggerSpy).toHaveBeenCalledWith('info'); + }); }); describe('authenticate', () => { diff --git a/src/logger.test.ts b/src/logger.test.ts new file mode 100644 index 0000000..8733622 --- /dev/null +++ b/src/logger.test.ts @@ -0,0 +1,47 @@ +import log, { enableLogger } from './logger'; +import type { Severity } from './types/ContentpassConfig'; +import { logger } from 'react-native-logs'; + +jest.mock('react-native-logs', () => { + return { + consoleTransport: jest.fn(), + logger: { + createLogger: jest.fn().mockReturnValue({ + setSeverity: jest.fn(), + enable: jest.fn(), + debug: jest.fn(), + }), + }, + }; +}); + +describe('Logger', () => { + afterEach(() => { + jest.resetAllMocks(); + jest.restoreAllMocks(); + }); + + it('should create a disabled logger', () => { + expect(logger.createLogger).toHaveBeenCalledWith({ + enabled: false, + transport: expect.any(Function), + transportOptions: expect.any(Object), + }); + }); + + it('should enable the logger with the correct severity', () => { + const severity: Severity = 'info'; + const setSeveritySpy = jest.spyOn(log, 'setSeverity'); + const enableSpy = jest.spyOn(log, 'enable'); + const debugSpy = jest.spyOn(log, 'debug'); + + enableLogger(severity); + + expect(setSeveritySpy).toHaveBeenCalledWith(severity); + expect(enableSpy).toHaveBeenCalled(); + expect(debugSpy).toHaveBeenCalledWith( + 'Logger enabled with severity', + severity + ); + }); +});