CommonSkeleton.spec.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. // Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. import { expect } from 'vitest'
  3. import { renderComponent } from '#tests/support/components/index.ts'
  4. import CommonSkeleton from '#desktop/components/CommonSkeleton/CommonSkeleton.vue'
  5. describe('CommonSkeleton', () => {
  6. it('renders CommonSkeleton', () => {
  7. const wrapper = renderComponent(CommonSkeleton)
  8. expect(wrapper.getByRole('progressbar')).toHaveClass('animate-pulse')
  9. })
  10. it('supports to make the skeleton completly round', () => {
  11. const wrapper = renderComponent(CommonSkeleton, {
  12. props: { rounded: true },
  13. })
  14. expect(wrapper.getByRole('progressbar')).toHaveClass('rounded-full')
  15. })
  16. describe('a11y', () => {
  17. it('should have no accessibility violations', async () => {
  18. const wrapper = renderComponent(CommonSkeleton, {
  19. label: 'Avatar skeleton',
  20. })
  21. // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  22. // @ts-expect-error
  23. expect(wrapper.getByRole('progressbar'), {
  24. busy: true,
  25. name: 'Avatar skeleton',
  26. value: {
  27. min: 0,
  28. max: 100,
  29. text: 'Please wait until content is loaded',
  30. },
  31. }).toBeInTheDocument()
  32. })
  33. })
  34. })