show.spec.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import Vue from 'vue'
  2. describe('Directive v-show', () => {
  3. it('should check show value is truthy', () => {
  4. const vm = new Vue({
  5. el: '#app',
  6. template: '<div><span v-show="foo">hello</span></div>',
  7. data: { foo: true }
  8. })
  9. expect(vm.$el.firstChild.style.display).toBe('')
  10. })
  11. it('should check show value is falsy', () => {
  12. const vm = new Vue({
  13. el: '#app',
  14. template: '<div><span v-show="foo">hello</span></div>',
  15. data: { foo: false }
  16. })
  17. expect(vm.$el.firstChild.style.display).toBe('none')
  18. })
  19. it('should update show value changed', done => {
  20. const vm = new Vue({
  21. el: '#app',
  22. template: '<div><span v-show="foo">hello</span></div>',
  23. data: { foo: true }
  24. })
  25. expect(vm.$el.firstChild.style.display).toBe('')
  26. vm.foo = false
  27. waitForUpdate(() => {
  28. expect(vm.$el.firstChild.style.display).toBe('none')
  29. vm.foo = {}
  30. }).then(() => {
  31. expect(vm.$el.firstChild.style.display).toBe('')
  32. vm.foo = 0
  33. }).then(() => {
  34. expect(vm.$el.firstChild.style.display).toBe('none')
  35. vm.foo = []
  36. }).then(() => {
  37. expect(vm.$el.firstChild.style.display).toBe('')
  38. vm.foo = null
  39. }).then(() => {
  40. expect(vm.$el.firstChild.style.display).toBe('none')
  41. vm.foo = '0'
  42. }).then(() => {
  43. expect(vm.$el.firstChild.style.display).toBe('')
  44. vm.foo = undefined
  45. }).then(() => {
  46. expect(vm.$el.firstChild.style.display).toBe('none')
  47. vm.foo = 1
  48. }).then(() => {
  49. expect(vm.$el.firstChild.style.display).toBe('')
  50. done()
  51. }).catch(done)
  52. })
  53. })