1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- import { nextTick } from 'vue'
- import { mount } from '@vue/test-utils'
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'
- import Skeleton from '../src/skeleton.vue'
- import type { SkeletonInstance } from '../src/skeleton'
- const AXIOM = 'AXIOM is the best girl'
- describe('Skeleton.vue', () => {
- beforeEach(() => {
- vi.useFakeTimers()
- })
- afterEach(() => {
- vi.restoreAllMocks()
- })
- it('render test', () => {
- const wrapper = mount(<Skeleton />)
- expect(wrapper.findAll('.el-skeleton__p')).toHaveLength(4)
- expect(wrapper.classes()).toMatchInlineSnapshot(`
- [
- "el-skeleton",
- ]
- `)
- })
- it('should render with animation', () => {
- const wrapper = mount(<Skeleton animated={true} />)
- expect(wrapper.classes()).toMatchInlineSnapshot(`
- [
- "el-skeleton",
- "is-animated",
- ]
- `)
- })
- it('should render x times', async () => {
- const wrapper = mount(<Skeleton />)
- expect(wrapper.findAll('.el-skeleton__p')).toHaveLength(4)
- await wrapper.setProps({
- count: 2,
- })
- expect(wrapper.findAll('.el-skeleton__p')).toHaveLength(8)
- })
- it('should render x rows', () => {
- const wrapper = mount(<Skeleton rows={4} />)
- expect(wrapper.findAll('.el-skeleton__p')).toHaveLength(5)
- })
- it('should render default slots', () => {
- const wrapper = mount(<Skeleton loading={false}>{AXIOM}</Skeleton>)
- expect(wrapper.text()).toBe(AXIOM)
- })
- it('should render templates', () => {
- const wrapper = mount(
- <Skeleton
- v-slots={{
- template: () => AXIOM,
- }}
- />
- )
- expect(wrapper.text()).toBe(AXIOM)
- })
- it('should throttle rendering', async () => {
- const wrapper = mount(<Skeleton throttle={500} />)
- expect((wrapper.vm as SkeletonInstance).uiLoading).toBe(false)
- vi.runAllTimers()
- await nextTick()
- expect((wrapper.vm as SkeletonInstance).uiLoading).toBe(true)
- })
- })
|