-
Piotr Gawron authoredPiotr Gawron authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
errorReporting.test.ts 1.67 KiB
/* eslint-disable no-magic-numbers */
import { createErrorData } from '@/utils/error-report/errorReporting';
import { apiPath } from '@/redux/apiPath';
import { HttpStatusCode } from 'axios';
import { loginFixture } from '@/models/fixtures/loginFixture';
import { userPrivilegesFixture } from '@/models/fixtures/userPrivilegesFixture';
import { login } from '@/redux/user/user.thunks';
import { mockNetworkResponse } from '@/utils/mockNetworkResponse';
import { store } from '@/redux/store';
const mockedAxiosClient = mockNetworkResponse();
const CREDENTIALS = {
login: 'test',
password: 'password',
};
describe('createErrorData', () => {
it('should add stacktrace', () => {
const error = createErrorData(new Error('hello'));
expect(error.stacktrace).not.toEqual('');
});
it('should add url', () => {
const error = createErrorData(new Error('hello'));
expect(error.url).not.toBeNull();
});
it('should add browser', () => {
const error = createErrorData(new Error('hello'));
expect(error.browser).not.toBeNull();
});
it('should add guest login when not logged', () => {
const error = createErrorData(new Error('hello'));
expect(error.login).toBe('anonymous');
});
it('should add login when logged', async () => {
mockedAxiosClient.onPost(apiPath.postLogin()).reply(HttpStatusCode.Ok, loginFixture);
mockedAxiosClient
.onGet(apiPath.userPrivileges(loginFixture.login))
.reply(HttpStatusCode.Ok, userPrivilegesFixture);
await store.dispatch(login(CREDENTIALS));
const error = createErrorData(new Error('hello'));
expect(error.login).not.toBe('anonymous');
expect(error.login).toBe(loginFixture.login);
});
});