浏览代码

tests for simple directives

Evan You 11 年之前
父节点
当前提交
b6771a9ed3

+ 25 - 0
test/unit/specs/directives/cloak_spec.js

@@ -0,0 +1,25 @@
+var _ = require('../../../../src/util')
+var compile = require('../../../../src/compile/compile')
+var Vue = require('../../../../src/vue')
+
+if (_.inBrowser) {
+  describe('v-cloak', function () {
+
+    it('should not remove during compile', function () {
+      var el = document.createElement('div')
+      el.setAttribute('v-cloak', '')
+      compile(el, Vue.options)
+      expect(el.hasAttribute('v-cloak')).toBe(true)
+    })
+
+    it('should remove after compile', function () {
+      var el = document.createElement('div')
+      el.setAttribute('v-cloak', '')
+      new Vue({
+        el: el
+      })
+      expect(el.hasAttribute('v-cloak')).toBe(false)
+    })
+
+  })
+}

+ 29 - 0
test/unit/specs/directives/show_spec.js

@@ -0,0 +1,29 @@
+var _ = require('../../../../src/util')
+var Vue = require('../../../../src/vue')
+var transition = require('../../../../src/transition')
+var def = require('../../../../src/directives/show')
+
+if (_.inBrowser) {
+  describe('v-show', function () {
+
+    var el
+    beforeEach(function () {
+      el = document.createElement('div')
+      spyOn(transition, 'apply').and.callThrough()
+    })
+
+    it('should work', function () {
+      var dir = {
+        el: el,
+        update: def,
+        vm: new Vue()
+      }
+      dir.update(false)
+      expect(el.style.display).toBe('none')
+      dir.update(true)
+      expect(el.style.display).toBe('')
+      expect(transition.apply).toHaveBeenCalled()
+    })
+
+  })
+}

+ 10 - 0
test/unit/specs/directives/style_spec.js

@@ -0,0 +1,10 @@
+var _ = require('../../../../src/util')
+var def = require('../../../../src/directives/style')
+
+if (_.inBrowser) {
+  describe('v-style', function () {
+
+    // TODO
+
+  })
+}

+ 32 - 0
test/unit/specs/directives/text_spec.js

@@ -0,0 +1,32 @@
+var _ = require('../../../../src/util')
+var def = require('../../../../src/directives/text')
+
+if (_.inBrowser) {
+  describe('v-text', function () {
+
+    it('element', function () {
+      var dir = {
+        el: document.createElement('div')
+      }
+      _.extend(dir, def)
+      dir.bind()
+      dir.update('hi')
+      expect(dir.el.textContent).toBe('hi')
+      dir.update(123)
+      expect(dir.el.textContent).toBe('123')
+    })
+
+    it('text node', function () {
+      var dir = {
+        el: document.createTextNode(' ')
+      }
+      _.extend(dir, def)
+      dir.bind()
+      dir.update('hi')
+      expect(dir.el.nodeValue).toBe('hi')
+      dir.update(123)
+      expect(dir.el.nodeValue).toBe('123')
+    })
+
+  })
+}

+ 18 - 0
test/unit/specs/directives/transition_spec.js

@@ -0,0 +1,18 @@
+var _ = require('../../../../src/util')
+var def = require('../../../../src/directives/transition')
+
+if (_.inBrowser) {
+  describe('v-transition', function () {
+
+    it('should save the transition id as data', function () {
+      var dir = {
+        el: document.createElement('div'),
+        expression: 'test',
+        bind: def.bind
+      }
+      dir.bind()
+      expect(dir.el.__v_trans.id).toBe('test')
+    })
+
+  })
+}