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

class.spec.ts — vue Source File

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

File typescript 2 imports

Entity Profile

Dependency Diagram

graph LR
  4f62a7bc_9fc2_8dad_d82c_6b0f76ada0ea["class.spec.ts"]
  22f6e3b3_fd99_35d7_94cf_527e68438cb3["patch"]
  4f62a7bc_9fc2_8dad_d82c_6b0f76ada0ea --> 22f6e3b3_fd99_35d7_94cf_527e68438cb3
  973389ac_8625_30a3_53ce_b1b48fae58c5["vnode"]
  4f62a7bc_9fc2_8dad_d82c_6b0f76ada0ea --> 973389ac_8625_30a3_53ce_b1b48fae58c5
  style 4f62a7bc_9fc2_8dad_d82c_6b0f76ada0ea fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { patch } from 'web/runtime/patch'
import VNode from 'core/vdom/vnode'

describe('vdom class module', () => {
  it('should create an element with staticClass', () => {
    const vnode = new VNode('p', { staticClass: 'class1' })
    const elm = patch(null, vnode)
    expect(elm).toHaveClass('class1')
  })

  it('should create an element with class', () => {
    const vnode = new VNode('p', { class: 'class1' })
    const elm = patch(null, vnode)
    expect(elm).toHaveClass('class1')
  })

  it('should create an element with array class', () => {
    const vnode = new VNode('p', { class: ['class1', 'class2'] })
    const elm = patch(null, vnode)
    expect(elm).toHaveClass('class1')
    expect(elm).toHaveClass('class2')
  })

  it('should create an element with object class', () => {
    const vnode = new VNode('p', {
      class: { class1: true, class2: false, class3: true }
    })
    const elm = patch(null, vnode)
    expect(elm).toHaveClass('class1')
    expect(elm).not.toHaveClass('class2')
    expect(elm).toHaveClass('class3')
  })

  it('should create an element with mixed class', () => {
    const vnode = new VNode('p', {
      class: [
        { class1: false, class2: true, class3: false },
        'class4',
        ['class5', 'class6']
      ]
    })
    const elm = patch(null, vnode)
    expect(elm).not.toHaveClass('class1')
    expect(elm).toHaveClass('class2')
    expect(elm).not.toHaveClass('class3')
    expect(elm).toHaveClass('class4')
    expect(elm).toHaveClass('class5')
    expect(elm).toHaveClass('class6')
  })

  it('should create an element with staticClass and class', () => {
    const vnode = new VNode('p', { staticClass: 'class1', class: 'class2' })
    const elm = patch(null, vnode)
    expect(elm).toHaveClass('class1')
    expect(elm).toHaveClass('class2')
  })

  it('should handle transition class', () => {
    const vnode1 = new VNode('p', {
      class: { class1: true, class2: false, class3: true }
    })
    let elm = patch(null, vnode1)
    elm._transitionClasses = ['class4']
    const vnode2 = new VNode('p', {
      class: { class1: true, class2: true, class3: true }
    })
    elm = patch(vnode1, vnode2)
    expect(elm).toHaveClass('class1')
    expect(elm).toHaveClass('class2')
    expect(elm).toHaveClass('class3')
    expect(elm).toHaveClass('class4')
  })

  it('should change the elements class', () => {
    const vnode1 = new VNode('p', {
      class: { class1: true, class2: false, class3: true }
    })
    const vnode2 = new VNode('p', { staticClass: 'foo bar' })
    let elm = patch(null, vnode1)
    elm = patch(vnode1, vnode2)
    expect(elm).not.toHaveClass('class1')
    expect(elm).not.toHaveClass('class2')
    expect(elm).not.toHaveClass('class3')
    expect(elm).toHaveClass('foo')
    expect(elm).toHaveClass('bar')
  })

  it('should remove the elements class', () => {
    const vnode1 = new VNode('p', {
      class: { class1: true, class2: false, class3: true }
    })
    const vnode2 = new VNode('p', { class: {} })
    let elm = patch(null, vnode1)
    elm = patch(vnode1, vnode2)
    expect(elm).not.toHaveClass('class1')
    expect(elm).not.toHaveClass('class2')
    expect(elm).not.toHaveClass('class3')
  })

  it('should remove class for new nodes without class data', () => {
    const vnode1 = new VNode('p', {
      class: { class1: true, class2: false, class3: true }
    })
    const vnode2 = new VNode('p', {})
    let elm = patch(null, vnode1)
    elm = patch(vnode1, vnode2)
    expect(elm).not.toHaveClass('class1')
    expect(elm).not.toHaveClass('class2')
    expect(elm).not.toHaveClass('class3')
  })
})

Dependencies

  • patch
  • vnode

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free