diff --git a/packages/image/__tests__/image.spec.ts b/packages/image/__tests__/image.spec.ts index aac93469f9..22140ec5a5 100644 --- a/packages/image/__tests__/image.spec.ts +++ b/packages/image/__tests__/image.spec.ts @@ -99,5 +99,18 @@ describe('Image.vue', () => { expect(result).toBeTruthy() }) + test('emit load event', async () => { + const handleLoad = jest.fn() + const wrapper = mount(Image, { + props: { + src: IMAGE_SUCCESS, + onLoad: handleLoad, + }, + }) + await doubleWait() + expect(wrapper.find('.el-image__inner').exists()).toBe(true) + expect(handleLoad).toBeCalled() + }) + //@todo lazy image test }) diff --git a/packages/image/src/index.vue b/packages/image/src/index.vue index bb01e5f40a..263a44c782 100644 --- a/packages/image/src/index.vue +++ b/packages/image/src/index.vue @@ -185,6 +185,8 @@ export default defineComponent({ // so it can behave consistently Object.keys(attributes) .forEach(key => { + // avoid onload to be overwritten + if (key.toLowerCase() === 'onload') return const value = attributes[key] img.setAttribute(key, value) })