diff --git a/packages/runtime-core/__tests__/hydration.spec.ts b/packages/runtime-core/__tests__/hydration.spec.ts index 3f9feb4ea77..a12131454a6 100644 --- a/packages/runtime-core/__tests__/hydration.spec.ts +++ b/packages/runtime-core/__tests__/hydration.spec.ts @@ -626,6 +626,15 @@ describe('SSR hydration', () => { expect(spy).toHaveBeenCalled() }) + test('elements with camel-case in svg ', () => { + const { vnode, container } = mountWithHydration( + '', + () => h('animateTransform') + ) + expect(vnode.el).toBe(container.firstChild) + expect(`Hydration node mismatch`).not.toHaveBeenWarned() + }) + test('SVG as a mount container', () => { const svgContainer = document.createElement('svg') svgContainer.innerHTML = '' diff --git a/packages/runtime-core/src/hydration.ts b/packages/runtime-core/src/hydration.ts index 8f30cadb290..0085ce6eea1 100644 --- a/packages/runtime-core/src/hydration.ts +++ b/packages/runtime-core/src/hydration.ts @@ -158,7 +158,8 @@ export function createHydrationFunctions( if (shapeFlag & ShapeFlags.ELEMENT) { if ( domType !== DOMNodeTypes.ELEMENT || - vnode.type !== (node as Element).tagName.toLowerCase() + (vnode.type as string).toLowerCase() !== + (node as Element).tagName.toLowerCase() ) { nextNode = onMismatch() } else {