el_spec.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. var _ = require('../../../../../src/util')
  2. var Vue = require('../../../../../src/vue')
  3. if (_.inBrowser) {
  4. describe('el', function () {
  5. var el
  6. beforeEach(function () {
  7. el = document.createElement('div')
  8. spyOn(_, 'warn')
  9. spyOn(_, 'log')
  10. })
  11. it('normal', function (done) {
  12. var vm = new Vue({
  13. el: el,
  14. data: {
  15. ok: true
  16. },
  17. template: '<div v-if="ok" v-el:test-el id="test"></div>'
  18. })
  19. expect(vm.$els.testEl).toBeTruthy()
  20. expect(vm.$els.testEl.id).toBe('test')
  21. vm.ok = false
  22. _.nextTick(function () {
  23. expect(vm.$els.testEl).toBeNull()
  24. vm.ok = true
  25. _.nextTick(function () {
  26. expect(vm.$els.testEl.id).toBe('test')
  27. done()
  28. })
  29. })
  30. })
  31. it('inside v-for', function () {
  32. var vm = new Vue({
  33. el: el,
  34. data: { items: [1, 2] },
  35. template: '<div v-for="n in items"><p v-el:test>{{n}}</p>{{$els.test.textContent}}</div>'
  36. })
  37. expect(vm.$el.textContent).toBe('1122')
  38. })
  39. })
  40. }