salsify-experiences-sdk
Version:
SDK to be used by commerce websites to implement product experiences.
32 lines (25 loc) • 874 B
text/typescript
/**
* @jest-environment jsdom
*/
import Transport from '../log-service-transport'
import { createLogger } from '../index'
import { makeContext, makeSettings } from '../../../__tests__/helpers'
jest.mock('../log-service-transport')
describe('logger', () => {
beforeEach(() => {
;(Transport as jest.Mock).mockClear()
})
test('it logs the expected page context', () => {
const scrollPosition = 500
window.scrollY = scrollPosition
const logger = createLogger(makeContext(), makeSettings())
logger.log('foo')
const transportLogMock = (Transport as jest.Mock).mock.instances[0].log
expect(transportLogMock).toHaveBeenCalledTimes(1)
const [, , context] = transportLogMock.mock.calls[0]
expect(context).toEqual({
version: expect.any(String),
page: { url: 'http://localhost/', title: '', scrollPosition },
})
})
})