icon.test.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { expect } from 'chai'
  2. import { screen, render } from '@testing-library/react'
  3. import Icon from '../../../../frontend/js/shared/components/icon'
  4. describe('<Icon />', function () {
  5. it('renders basic fa classes', function () {
  6. const { container } = render(<Icon type="angle-down" />)
  7. const element = container.querySelector('i.fa.fa-angle-down')
  8. expect(element).to.exist
  9. })
  10. it('renders with aria-hidden', function () {
  11. const { container } = render(<Icon type="angle-down" />)
  12. const element = container.querySelector('i[aria-hidden="true"]')
  13. expect(element).to.exist
  14. })
  15. it('renders accessible label', function () {
  16. render(<Icon type="angle-down" accessibilityLabel="Accessible Foo" />)
  17. screen.getByText('Accessible Foo')
  18. })
  19. it('renders with spin', function () {
  20. const { container } = render(<Icon type="angle-down" spin />)
  21. const element = container.querySelector('i.fa.fa-angle-down.fa-spin')
  22. expect(element).to.exist
  23. })
  24. it('renders with modifier', function () {
  25. const { container } = render(<Icon type="angle-down" modifier="2x" />)
  26. const element = container.querySelector('i.fa.fa-angle-down.fa-2x')
  27. expect(element).to.exist
  28. })
  29. it('renders with custom clases', function () {
  30. const { container } = render(
  31. <Icon type="angle-down" classes={{ icon: 'custom-icon-class' }} />
  32. )
  33. const element = container.querySelector(
  34. 'i.fa.fa-angle-down.custom-icon-class'
  35. )
  36. expect(element).to.exist
  37. })
  38. it('renders children', function () {
  39. const { container } = render(
  40. <Icon type="angle-down">
  41. <Icon type="angle-up" />
  42. </Icon>
  43. )
  44. const element = container.querySelector(
  45. 'i.fa.fa-angle-down > i.fa.fa-angle-up'
  46. )
  47. expect(element).to.exist
  48. })
  49. })