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

observer.spec.ts — vue Source File

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

File typescript 4 imports

Entity Profile

Dependency Diagram

graph LR
  f5e925cd_3f85_cfed_27ef_843c13a717fc["observer.spec.ts"]
  db9e7bef_009d_3918_6e7d_543a36a38d75["vue"]
  f5e925cd_3f85_cfed_27ef_843c13a717fc --> db9e7bef_009d_3918_6e7d_543a36a38d75
  3897e8b5_9242_b5d7_bf5f_783d40cceb59["index"]
  f5e925cd_3f85_cfed_27ef_843c13a717fc --> 3897e8b5_9242_b5d7_bf5f_783d40cceb59
  33c70915_1726_ee82_246e_a7d09e56426a["dep"]
  f5e925cd_3f85_cfed_27ef_843c13a717fc --> 33c70915_1726_ee82_246e_a7d09e56426a
  90a2398a_1498_3263_c62e_0c064dd2c9b3["index"]
  f5e925cd_3f85_cfed_27ef_843c13a717fc --> 90a2398a_1498_3263_c62e_0c064dd2c9b3
  style f5e925cd_3f85_cfed_27ef_843c13a717fc fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import Vue from 'vue'
import {
  Observer,
  observe,
  set as setProp,
  del as delProp
} from 'core/observer/index'
import Dep from 'core/observer/dep'
import { hasOwn } from 'core/util/index'

describe('Observer', () => {
  it('create on non-observables', () => {
    // skip primitive value
    const ob1 = observe(1)
    expect(ob1).toBeUndefined()
    // avoid vue instance
    const ob2 = observe(new Vue())
    expect(ob2).toBeUndefined()
    // avoid frozen objects
    const ob3 = observe(Object.freeze({}))
    expect(ob3).toBeUndefined()
  })

  it('create on object', () => {
    // on object
    const obj: any = {
      a: {},
      b: {}
    }
    const ob1 = observe(obj)!
    expect(ob1 instanceof Observer).toBe(true)
    expect(ob1.value).toBe(obj)
    expect(obj.__ob__).toBe(ob1)
    // should've walked children
    expect(obj.a.__ob__ instanceof Observer).toBe(true)
    expect(obj.b.__ob__ instanceof Observer).toBe(true)
    // should return existing ob on already observed objects
    const ob2 = observe(obj)!
    expect(ob2).toBe(ob1)
  })

  it('create on null', () => {
    // on null
    const obj: any = Object.create(null)
    obj.a = {}
    obj.b = {}
    const ob1 = observe(obj)!
    expect(ob1 instanceof Observer).toBe(true)
    expect(ob1.value).toBe(obj)
    expect(obj.__ob__).toBe(ob1)
    // should've walked children
    expect(obj.a.__ob__ instanceof Observer).toBe(true)
    expect(obj.b.__ob__ instanceof Observer).toBe(true)
    // should return existing ob on already observed objects
    const ob2 = observe(obj)!
    expect(ob2).toBe(ob1)
  })

  it('create on already observed object', () => {
    // on object
// ... (341 more lines)

Dependencies

  • dep
  • index
  • index
  • vue

Frequently Asked Questions

What does observer.spec.ts do?
observer.spec.ts is a source file in the vue codebase, written in typescript.
What does observer.spec.ts depend on?
observer.spec.ts imports 4 module(s): dep, index, index, vue.
Where is observer.spec.ts in the architecture?
observer.spec.ts is located at test/unit/modules/observer/observer.spec.ts (directory: test/unit/modules/observer).

Analyze Your Own Codebase

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

Try Supermodel Free