Home / File/ hooks.spec.ts — vue Source File

hooks.spec.ts — vue Source File

Architecture documentation for hooks.spec.ts, a typescript file in the vue codebase. 6 imports, 0 dependents.

File typescript 6 imports

Entity Profile

Dependency Diagram

graph LR
  6cd2bfe2_66af_cae0_50dc_64ee44b6bd11["hooks.spec.ts"]
  22f6e3b3_fd99_35d7_94cf_527e68438cb3["patch"]
  6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 22f6e3b3_fd99_35d7_94cf_527e68438cb3
  7f2e8dff_3298_ebe0_d86e_250235fb5e75["patch"]
  6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 7f2e8dff_3298_ebe0_d86e_250235fb5e75
  a3bc8b1b_3e92_8691_7c02_225e174e5d24["index"]
  6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> a3bc8b1b_3e92_8691_7c02_225e174e5d24
  f80c5e4d_1e3b_767f_8be3_ecd31cdf3f45["node-ops"]
  6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> f80c5e4d_1e3b_767f_8be3_ecd31cdf3f45
  52e0ef55_d336_3b74_458f_64be07e45dab["index"]
  6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 52e0ef55_d336_3b74_458f_64be07e45dab
  973389ac_8625_30a3_53ce_b1b48fae58c5["vnode"]
  6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 --> 973389ac_8625_30a3_53ce_b1b48fae58c5
  style 6cd2bfe2_66af_cae0_50dc_64ee44b6bd11 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { patch } from 'web/runtime/patch'
import { createPatchFunction } from 'core/vdom/patch'
import baseModules from 'core/vdom/modules/index'
import * as nodeOps from 'web/runtime/node-ops'
import platformModules from 'web/runtime/modules/index'
import VNode from 'core/vdom/vnode'

const modules = baseModules.concat(platformModules) as any[]

describe('vdom patch: hooks', () => {
  let vnode0
  beforeEach(() => {
    vnode0 = new VNode('p', { attrs: { id: '1' } }, [
      createTextVNode('hello world')
    ])
    patch(null, vnode0)
  })

  it('should call `insert` listener after both parents, siblings and children have been inserted', () => {
    const result: any[] = []
    function insert(vnode) {
      expect(vnode.elm.children.length).toBe(2)
      expect(vnode.elm.parentNode.children.length).toBe(3)
      result.push(vnode)
    }
    const vnode1 = new VNode('div', {}, [
      new VNode('span', {}, undefined, 'first sibling'),
      new VNode('div', { hook: { insert } }, [
        new VNode('span', {}, undefined, 'child 1'),
        new VNode('span', {}, undefined, 'child 2')
      ]),
      new VNode('span', {}, undefined, 'can touch me')
    ])
    patch(vnode0, vnode1)
    expect(result.length).toBe(1)
  })

  it('should call `prepatch` listener', () => {
    const result: any[] = []
    function prepatch(oldVnode, newVnode) {
      expect(oldVnode).toEqual(vnode1.children[1])
      expect(newVnode).toEqual(vnode2.children[1])
      result.push(newVnode)
    }
    const vnode1 = new VNode('div', {}, [
      new VNode('span', {}, undefined, 'first sibling'),
      new VNode('div', { hook: { prepatch } }, [
        new VNode('span', {}, undefined, 'child 1'),
        new VNode('span', {}, undefined, 'child 2')
      ])
    ])
    const vnode2 = new VNode('div', {}, [
      new VNode('span', {}, undefined, 'first sibling'),
      new VNode('div', { hook: { prepatch } }, [
        new VNode('span', {}, undefined, 'child 1'),
        new VNode('span', {}, undefined, 'child 2')
      ])
    ])
    patch(vnode0, vnode1)
    patch(vnode1, vnode2)
// ... (319 more lines)

Dependencies

  • index
  • index
  • node-ops
  • patch
  • patch
  • vnode

Frequently Asked Questions

What does hooks.spec.ts do?
hooks.spec.ts is a source file in the vue codebase, written in typescript.
What does hooks.spec.ts depend on?
hooks.spec.ts imports 6 module(s): index, index, node-ops, patch, patch, vnode.
Where is hooks.spec.ts in the architecture?
hooks.spec.ts is located at test/unit/modules/vdom/patch/hooks.spec.ts (directory: test/unit/modules/vdom/patch).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free