dep.spec.ts — vue Source File
Architecture documentation for dep.spec.ts, a typescript file in the vue codebase. 1 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 64ad7e2a_a6e4_c5a4_40f0_a35cdd957b76["dep.spec.ts"] 33c70915_1726_ee82_246e_a7d09e56426a["dep"] 64ad7e2a_a6e4_c5a4_40f0_a35cdd957b76 --> 33c70915_1726_ee82_246e_a7d09e56426a style 64ad7e2a_a6e4_c5a4_40f0_a35cdd957b76 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import Dep, { cleanupDeps } from 'core/observer/dep'
describe('Dep', () => {
let dep
beforeEach(() => {
dep = new Dep()
})
describe('instance', () => {
it('should be created with correct properties', () => {
expect(dep.subs.length).toBe(0)
expect(new Dep().id).toBe(dep.id + 1)
})
})
describe('addSub()', () => {
it('should add sub', () => {
dep.addSub(null)
expect(dep.subs.length).toBe(1)
expect(dep.subs[0]).toBe(null)
})
})
describe('removeSub()', () => {
it('should remove sub', () => {
const sub = {}
dep.subs.push(sub)
dep.removeSub(sub)
expect(dep.subs.includes(sub)).toBe(false)
// nulled subs are cleared on next flush
cleanupDeps()
expect(dep.subs.length).toBe(0)
})
})
describe('depend()', () => {
let _target
beforeAll(() => {
_target = Dep.target
})
afterAll(() => {
Dep.target = _target
})
it('should do nothing if no target', () => {
Dep.target = null
dep.depend()
})
it('should add itself to target', () => {
Dep.target = { addDep: vi.fn() } as any
dep.depend()
expect(Dep.target!.addDep).toHaveBeenCalledWith(dep)
})
})
describe('notify()', () => {
it('should notify subs', () => {
dep.subs.push({ update: vi.fn() })
dep.notify()
expect(dep.subs[0].update).toHaveBeenCalled()
})
})
})
Dependencies
- dep
Source
Frequently Asked Questions
What does dep.spec.ts do?
dep.spec.ts is a source file in the vue codebase, written in typescript.
What does dep.spec.ts depend on?
dep.spec.ts imports 1 module(s): dep.
Where is dep.spec.ts in the architecture?
dep.spec.ts is located at test/unit/modules/observer/dep.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