|
|
@@ -0,0 +1,63 @@
|
|
|
+import Dep 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', () => {
|
|
|
+ dep.subs.push(null)
|
|
|
+ dep.removeSub(null)
|
|
|
+ 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 = jasmine.createSpyObj('TARGET', ['addDep'])
|
|
|
+ dep.depend()
|
|
|
+ expect(Dep.target.addDep).toHaveBeenCalledWith(dep)
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ describe('notify()', () => {
|
|
|
+ it('should notify subs', () => {
|
|
|
+ dep.subs.push(jasmine.createSpyObj('SUB', ['update']))
|
|
|
+ dep.notify()
|
|
|
+ expect(dep.subs[0].update).toHaveBeenCalled()
|
|
|
+ })
|
|
|
+ })
|
|
|
+})
|