overlay.test.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { nextTick, ref } from 'vue'
  2. import { mount } from '@vue/test-utils'
  3. import { describe, expect, test } from 'vitest'
  4. import Overlay from '../src/overlay'
  5. const AXIOM = 'Rem is the best girl'
  6. describe('Overlay.vue', () => {
  7. test('render test', async () => {
  8. const wrapper = mount(() => <Overlay>{AXIOM}</Overlay>)
  9. expect(wrapper.text()).toEqual(AXIOM)
  10. const testClass = 'test-class'
  11. await wrapper.setProps({
  12. overlayClass: testClass,
  13. })
  14. expect(wrapper.find(`.${testClass}`)).toBeTruthy()
  15. })
  16. test('should emit click event', async () => {
  17. const wrapper = mount(() => <Overlay>{AXIOM}</Overlay>)
  18. await wrapper.find('.el-overlay').trigger('click')
  19. expect(wrapper.emitted()).toBeTruthy()
  20. })
  21. test('no mask', async () => {
  22. const mask = ref(true)
  23. const wrapper = mount(() => <Overlay mask={mask.value}>{AXIOM}</Overlay>)
  24. const selector = '.el-overlay'
  25. expect(wrapper.find(selector).exists()).toBe(true)
  26. mask.value = false
  27. await nextTick()
  28. expect(wrapper.find(selector).exists()).toBe(false)
  29. mask.value = true
  30. await nextTick()
  31. expect(wrapper.find(selector).exists()).toBe(true)
  32. })
  33. })