From 28328379f89dd41bee7eee618a570b52bc906d53 Mon Sep 17 00:00:00 2001 From: shinkj11 <76468090+shinkj11@users.noreply.github.com> Date: Wed, 20 Apr 2022 09:49:14 +0900 Subject: [PATCH 1/3] Update image.tsx --- packages/next/client/image.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/next/client/image.tsx b/packages/next/client/image.tsx index 6a793cdae1cd..9fbb4e4e6a82 100644 --- a/packages/next/client/image.tsx +++ b/packages/next/client/image.tsx @@ -368,7 +368,6 @@ export default function Image({ objectFit, objectPosition, onLoadingComplete, - onError, placeholder = 'empty', blurDataURL, ...all From 75d4676a527cef8c50f3e77dadedf97e8ef20f24 Mon Sep 17 00:00:00 2001 From: "kyeongjun.shin" <> Date: Fri, 22 Apr 2022 17:55:38 +0900 Subject: [PATCH 2/3] Add test for image onError --- .../image-component/default/pages/on-error.js | 44 +++++++++++++++++++ .../default/test/index.test.js | 23 ++++++++++ 2 files changed, 67 insertions(+) create mode 100644 test/integration/image-component/default/pages/on-error.js diff --git a/test/integration/image-component/default/pages/on-error.js b/test/integration/image-component/default/pages/on-error.js new file mode 100644 index 000000000000..a976887359ac --- /dev/null +++ b/test/integration/image-component/default/pages/on-error.js @@ -0,0 +1,44 @@ +import { useState } from 'react' +import Image from 'next/image' + +const Page = () => { + return ( +
+

Test onError

+

+ If error occured while loading image, native onError should be called. +

+ + + + + ) +} + +function ImageWithMessage({ id, ...props }) { + const [msg, setMsg] = useState('no error occured') + const style = + props.layout === 'fill' + ? { position: 'relative', width: '64px', height: '64px' } + : {} + + return ( + <> +
+ { + const msg = `error occured while loading ${e.target.id}` + setMsg(msg) + }} + {...props} + /> +
+

{msg}

+
+ + ) +} + +export default Page diff --git a/test/integration/image-component/default/test/index.test.js b/test/integration/image-component/default/test/index.test.js index a9d2ab902bad..e444013df946 100644 --- a/test/integration/image-component/default/test/index.test.js +++ b/test/integration/image-component/default/test/index.test.js @@ -363,6 +363,29 @@ function runTests(mode) { ) }) + it('should callback native onError when error occured while loading image', async () => { + let browser = await webdriver(appPort, '/on-error') + + await check( + () => browser.eval(`document.getElementById("img1").currentSrc`), + /test\.png/ + ) + await check( + () => browser.eval(`document.getElementById("img2").currentSrc`), + //This is an empty data url + /nonexistent-img\.png/ + ) + await check( + () => browser.eval(`document.getElementById("msg1").textContent`), + 'no error occured' + ) + await check( + () => browser.eval(`document.getElementById("msg2").textContent`), + 'error occured while loading img2' + ) + setTimeout(() => {}, [10000]) + }) + it('should work with image with blob src', async () => { let browser try { From dfc6e09859b976a4bb623b8ae936c6d170420fec Mon Sep 17 00:00:00 2001 From: Steven Date: Fri, 22 Apr 2022 09:35:26 -0400 Subject: [PATCH 3/3] Remove unused setTimeout --- test/integration/image-component/default/test/index.test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/test/integration/image-component/default/test/index.test.js b/test/integration/image-component/default/test/index.test.js index e444013df946..13e8bec9a719 100644 --- a/test/integration/image-component/default/test/index.test.js +++ b/test/integration/image-component/default/test/index.test.js @@ -383,7 +383,6 @@ function runTests(mode) { () => browser.eval(`document.getElementById("msg2").textContent`), 'error occured while loading img2' ) - setTimeout(() => {}, [10000]) }) it('should work with image with blob src', async () => {