From 8ba5a4ce2ffe9903a1cc9d74645a9d2094c3cea5 Mon Sep 17 00:00:00 2001 From: zengyue ye Date: Mon, 30 May 2022 10:07:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8E=BB=E6=8E=89=20react=20=E5=8D=95?= =?UTF-8?q?=E6=B5=8B=E9=87=8C=E7=9A=84=20console.error=20=E8=BE=93?= =?UTF-8?q?=E5=87=BA=20(#1503)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/react/test/chart.test.tsx | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/packages/react/test/chart.test.tsx b/packages/react/test/chart.test.tsx index c6b707e49..9d81a8385 100644 --- a/packages/react/test/chart.test.tsx +++ b/packages/react/test/chart.test.tsx @@ -53,22 +53,15 @@ describe('', () => { }); it('Chart render with Error', () => { - const originOnError = window.onError; - - // jest 内部有一些 uncaught error 会导致用例失败,所以这里需要先全局捕获一下 - window.onerror = function myErrorHandler(errorMsg, url, lineNumber) { - return false; - }; - + const spyOnError = jest.spyOn(window, 'onerror').mockImplementation(() => {}); + const spyOnConsoleError = jest.spyOn(console, 'error').mockImplementation(() => {}); class Test extends Component { render() { throw new Error('Render Error'); } } - const onError = jest.fn(() => { - // do something - }); + const onError = jest.fn(); const wrapper = mount( Chart Fallback} onError={onError}> @@ -81,8 +74,9 @@ describe('', () => { // 断言 onError 触发 expect(onError.mock.calls.length).toBe(1); + expect(spyOnError).toHaveBeenCalled(); - // reset global onerror callback - window.onerror = originOnError; + spyOnError.mockRestore(); + spyOnConsoleError.mockRestore(); }); });