@rockpack/logger
Version:
This module can help you build error tracking & crash reporting system for your React application.
55 lines (54 loc) • 1.77 kB
JavaScript
import { __awaiter } from "tslib";
import React from 'react';
import { mount } from 'enzyme';
import { logger } from './logger';
import LoggerContainer, { useLoggerApi } from './LoggerContainer';
let loggerApi;
let level;
let message;
let stack;
beforeAll(() => {
const App = () => {
loggerApi = useLoggerApi();
return null;
};
mount(React.createElement(LoggerContainer, { onError: (s) => {
stack = s;
}, stdout: (l, m) => {
level = l;
message = m;
} },
React.createElement(App, null)));
});
it('test useLogger hook', () => {
expect(typeof logger.log === 'function')
.toBe(true);
expect(typeof logger.info === 'function')
.toBe(true);
expect(typeof logger.debug === 'function')
.toBe(true);
expect(typeof logger.warn === 'function')
.toBe(true);
expect(typeof logger.error === 'function')
.toBe(true);
});
['log', 'info', 'debug', 'warn', 'error'].forEach((logMethod) => {
test(`test logger ${logMethod} method`, () => {
logger[logMethod](`test ${logMethod} message`);
expect(level)
.toBe(logMethod);
expect(message)
.toBe(`test ${logMethod} message`);
});
});
describe('test useLoggerApi', () => {
test('test getStackData()', () => __awaiter(void 0, void 0, void 0, function* () {
const { actions } = loggerApi.getStackData();
expect(actions.length).toBe(5);
}));
test('test onError callback', () => __awaiter(void 0, void 0, void 0, function* () {
loggerApi.triggerError(loggerApi.getStackData());
expect(stack.actions.length)
.toBe(5);
}));
});