parent
							
								
									eb22a62798
								
							
						
					
					
						commit
						11e17a1a29
					
				@ -97,6 +97,28 @@ describe('SSR hydration', () => {
 | 
			
		||||
    expect(s.children).toBe(staticContent)
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  // #6008
 | 
			
		||||
  test('static (with text node as starting node)', () => {
 | 
			
		||||
    const html = ` A <span>foo</span> B`
 | 
			
		||||
    const { vnode, container } = mountWithHydration(html, () =>
 | 
			
		||||
      createStaticVNode(` A <span>foo</span> B`, 3)
 | 
			
		||||
    )
 | 
			
		||||
    expect(vnode.el).toBe(container.firstChild)
 | 
			
		||||
    expect(vnode.anchor).toBe(container.lastChild)
 | 
			
		||||
    expect(`Hydration node mismatch`).not.toHaveBeenWarned()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  test('static with content adoption', () => {
 | 
			
		||||
    const html = ` A <span>foo</span> B`
 | 
			
		||||
    const { vnode, container } = mountWithHydration(html, () =>
 | 
			
		||||
      createStaticVNode(``, 3)
 | 
			
		||||
    )
 | 
			
		||||
    expect(vnode.el).toBe(container.firstChild)
 | 
			
		||||
    expect(vnode.anchor).toBe(container.lastChild)
 | 
			
		||||
    expect(vnode.children).toBe(html)
 | 
			
		||||
    expect(`Hydration node mismatch`).not.toHaveBeenWarned()
 | 
			
		||||
  })
 | 
			
		||||
 | 
			
		||||
  test('element with text children', async () => {
 | 
			
		||||
    const msg = ref('foo')
 | 
			
		||||
    const { vnode, container } = mountWithHydration(
 | 
			
		||||
 | 
			
		||||
@ -150,7 +150,7 @@ export function createHydrationFunctions(
 | 
			
		||||
        }
 | 
			
		||||
        break
 | 
			
		||||
      case Static:
 | 
			
		||||
        if (domType !== DOMNodeTypes.ELEMENT) {
 | 
			
		||||
        if (domType !== DOMNodeTypes.ELEMENT && domType !== DOMNodeTypes.TEXT) {
 | 
			
		||||
          nextNode = onMismatch()
 | 
			
		||||
        } else {
 | 
			
		||||
          // determine anchor, adopt content
 | 
			
		||||
@ -160,7 +160,10 @@ export function createHydrationFunctions(
 | 
			
		||||
          const needToAdoptContent = !(vnode.children as string).length
 | 
			
		||||
          for (let i = 0; i < vnode.staticCount!; i++) {
 | 
			
		||||
            if (needToAdoptContent)
 | 
			
		||||
              vnode.children += (nextNode as Element).outerHTML
 | 
			
		||||
              vnode.children +=
 | 
			
		||||
                nextNode.nodeType === DOMNodeTypes.ELEMENT
 | 
			
		||||
                  ? (nextNode as Element).outerHTML
 | 
			
		||||
                  : (nextNode as Text).data
 | 
			
		||||
            if (i === vnode.staticCount! - 1) {
 | 
			
		||||
              vnode.anchor = nextNode
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user