UNPKG

mutiple

Version:

A SDK for monitoring browser and miniPrograme errors

58 lines (56 loc) 2.06 kB
import { HandleEvents } from '@mutiple/browser' import { BREADCRUMBCATEGORYS, BREADCRUMBTYPES, HTTPTYPE } from '@mutiple/shared' import { breadcrumb, httpTransform, transportData } from '@mutiple/core' import { MITOHttp, EMethods } from '@mutiple/types' import { getTimestamp, Severity } from '@mutiple/utils' describe('handleEvents.ts', () => { afterEach(() => { breadcrumb.clear() transportData.queue.clear() }) const mockData: MITOHttp = { type: HTTPTYPE.XHR, traceId: '', time: getTimestamp(), method: EMethods.Get, url: 'https://test.com', reqData: { test: 1 }, sTime: getTimestamp(), elapsedTime: 320, responseText: { message: 'ok' }, status: 200, isSdkUrl: false } it('should handleHttp func work in status 200 http', () => { HandleEvents.handleHttp(mockData, BREADCRUMBTYPES.XHR) // for breadcrumb const stack = breadcrumb.getStack() expect(stack.length).toBe(1) expect(stack[0].type).toBe(BREADCRUMBTYPES.XHR) expect(stack[0].category).toBe(BREADCRUMBCATEGORYS.HTTP) expect(stack[0].level).toBe(Severity.Info) expect(stack[0].data).toEqual(httpTransform(mockData)) // for transportData // expect(transportData.queue.getStack().length).toBe(0) }) it('should handleHttp func work in status 0 http', () => { mockData.status = 0 mockData.type = HTTPTYPE.FETCH HandleEvents.handleHttp(mockData, BREADCRUMBTYPES.FETCH) // for breadcrumb const stack = breadcrumb.getStack() const result = stack[0].data expect(stack.length).toBe(2) expect(stack[0].type).toBe(BREADCRUMBTYPES.FETCH) expect(stack[0].category).toBe(BREADCRUMBCATEGORYS.HTTP) expect(stack[0].level).toBe(Severity.Info) expect(result).toMatchObject(httpTransform(mockData)) expect(stack[1].type).toBe(BREADCRUMBTYPES.FETCH) expect(stack[1].category).toBe(BREADCRUMBCATEGORYS.EXCEPTION) expect(stack[1].level).toBe(Severity.Error) // for transportData // expect(transportData.queue.getStack().length).toBe(1) }) })