salsify-experiences-sdk
Version:
SDK to be used by commerce websites to implement product experiences.
37 lines (27 loc) • 1.17 kB
text/typescript
import { useConsoleLogger } from '../../devTools'
import Transport from '../log-service-transport'
import { createLogger } from '../index'
import { makeContext, makeSettings } from '../../../__tests__/helpers'
jest.mock('../../devTools')
jest.mock('../log-service-transport')
const consoleSpy = jest.spyOn(global.console, 'log')
describe('logger', () => {
beforeEach(() => {
;(Transport as jest.Mock).mockClear()
consoleSpy.mockClear()
})
test('should use console logger when dev flag is enabled', () => {
;(useConsoleLogger as jest.Mock).mockReturnValue(true)
const logger = createLogger(makeContext(), makeSettings())
logger.log('foo')
expect(consoleSpy).toHaveBeenCalledTimes(1)
expect((Transport as jest.Mock).mock.instances[0].log).toHaveBeenCalledTimes(0)
})
test('should use console logger when dev flag is disabled', () => {
;(useConsoleLogger as jest.Mock).mockReturnValue(false)
const logger = createLogger(makeContext(), makeSettings())
logger.log('foo')
expect(consoleSpy).toHaveBeenCalledTimes(0)
expect((Transport as jest.Mock).mock.instances[0].log).toHaveBeenCalledTimes(1)
})
})