el_spec.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. vm._directives[0]._teardown()
  18. expect(vm.$$.test).toBeUndefined()
  19. })
  20. it('with v-repeat', function (done) {
  21. var vm = new Vue({
  22. el: el,
  23. data: { items: [1,2,3,4,5] },
  24. template: '<div v-repeat="items" v-el="test">{{$value}}</div>'
  25. })
  26. expect(vm.$$.test).toBeTruthy()
  27. expect(Array.isArray(vm.$$.test)).toBe(true)
  28. expect(vm.$$.test[0].textContent).toBe('1')
  29. expect(vm.$$.test[4].textContent).toBe('5')
  30. vm.items = []
  31. _.nextTick(function () {
  32. expect(vm.$$.test.length).toBe(0)
  33. done()
  34. })
  35. })
  36. })
  37. }