show.spec.js 1.5 KB

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