ilink-world/docs/.docz/.cache/__tests__/error-overlay-handler.js

60 lines
1.7 KiB
JavaScript

import "@babel/polyfill"
const {
reportError,
clearError,
errorMap,
} = require(`../error-overlay-handler`)
import * as ErrorOverlay from "react-error-overlay"
jest.mock(`react-error-overlay`, () => {
return {
reportBuildError: jest.fn(),
dismissBuildError: jest.fn(),
startReportingRuntimeErrors: jest.fn(),
setEditorHandler: jest.fn(),
}
})
beforeEach(() => {
ErrorOverlay.reportBuildError.mockClear()
ErrorOverlay.dismissBuildError.mockClear()
})
describe(`errorOverlayHandler`, () => {
describe(`clearError()`, () => {
beforeEach(() => {
reportError(`foo`, `error`)
reportError(`bar`, `error`)
})
afterAll(() => {
clearError(`foo`)
clearError(`bar`)
})
it(`should clear specific error type`, () => {
expect(Object.keys(errorMap)).toHaveLength(2)
clearError(`foo`)
expect(Object.keys(errorMap)).toHaveLength(1)
expect(ErrorOverlay.dismissBuildError).not.toHaveBeenCalled()
})
it(`should call ErrorOverlay to dismiss build errors`, () => {
clearError(`foo`)
clearError(`bar`)
expect(ErrorOverlay.dismissBuildError).toHaveBeenCalled()
})
})
describe(`reportErrorOverlay()`, () => {
it(`should not add error if it's empty and not call ErrorOverlay`, () => {
reportError(`foo`, null)
expect(Object.keys(errorMap)).toHaveLength(0)
expect(ErrorOverlay.reportBuildError).not.toHaveBeenCalled()
})
it(`should add error if it has a truthy value and call ErrorOverlay`, () => {
reportError(`foo`, `bar`)
expect(Object.keys(errorMap)).toHaveLength(1)
expect(ErrorOverlay.reportBuildError).toHaveBeenCalled()
})
})
})