el_spec.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. var _ = require('../../../../src/util')
  2. var Vue = require('../../../../src/vue')
  3. if (_.inBrowser) {
  4. describe('v-el', function () {
  5. var el
  6. beforeEach(function () {
  7. el = document.createElement('div')
  8. spyOn(_, 'warn')
  9. })
  10. it('normal', function () {
  11. var vm = new Vue({
  12. el: el,
  13. template: '<div v-el="test" id="test"></div>'
  14. })
  15. expect(vm.$$.test).toBeTruthy()
  16. expect(vm.$$.test.id).toBe('test')
  17. })
  18. it('with v-repeat', function (done) {
  19. var vm = new Vue({
  20. el: el,
  21. data: { items: [1,2,3,4,5] },
  22. template: '<div v-repeat="items" v-el="test">{{$value}}</div>'
  23. })
  24. expect(vm.$$.test).toBeTruthy()
  25. expect(Array.isArray(vm.$$.test)).toBe(true)
  26. expect(vm.$$.test[0].textContent).toBe('1')
  27. expect(vm.$$.test[4].textContent).toBe('5')
  28. vm.items = []
  29. _.nextTick(function () {
  30. expect(vm.$$.test.length).toBe(0)
  31. done()
  32. })
  33. })
  34. it('inside v-if', function () {
  35. var vm = new Vue({
  36. el: el,
  37. data: { test: true },
  38. template: '<div v-if="test"><div id="test" v-el="test"></div></div>'
  39. })
  40. expect(vm.$$.test).toBeTruthy()
  41. expect(vm.$$.test.id).toBe('test')
  42. vm._children[0].$destroy()
  43. expect(vm.$$.test).toBeNull()
  44. })
  45. })
  46. }