icon.test.js 1.8 KB

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