Преглед на файлове

test: add unit tests for core/observer/dep (#7738)

Sergei Chipiga преди 8 години
родител
ревизия
9e04f6af27
променени са 1 файла, в които са добавени 63 реда и са изтрити 0 реда
  1. 63 0
      test/unit/modules/observer/dep.spec.js

+ 63 - 0
test/unit/modules/observer/dep.spec.js

@@ -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()
+    })
+  })
+})