settings-image-name.test.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { screen, within, render } from '@testing-library/react'
  2. import { expect } from 'chai'
  3. import fetchMock from 'fetch-mock'
  4. import SettingsImageName from '../../../../../../frontend/js/features/editor-left-menu/components/settings/settings-image-name'
  5. import type { ImageName } from '../../../../../../types/project-settings'
  6. import { EditorLeftMenuProvider } from '@/features/editor-left-menu/components/editor-left-menu-context'
  7. import { EditorProviders } from '../../../../helpers/editor-providers'
  8. describe('<SettingsImageName />', function () {
  9. const imageNames: ImageName[] = [
  10. {
  11. imageDesc: 'Image 1',
  12. imageName: 'img-1',
  13. allowed: true,
  14. },
  15. {
  16. imageDesc: 'Image 2',
  17. imageName: 'img-2',
  18. allowed: true,
  19. },
  20. ]
  21. beforeEach(function () {
  22. window.metaAttributesCache.set('ol-imageNames', imageNames)
  23. })
  24. afterEach(function () {
  25. fetchMock.removeRoutes().clearHistory()
  26. })
  27. it('shows correct menu', async function () {
  28. render(
  29. <EditorProviders>
  30. <EditorLeftMenuProvider>
  31. <SettingsImageName />
  32. </EditorLeftMenuProvider>
  33. </EditorProviders>
  34. )
  35. const select = screen.getByLabelText('TeX Live version')
  36. for (const { imageName, imageDesc } of imageNames) {
  37. const option = within(select).getByText(imageDesc)
  38. expect(option.getAttribute('value')).to.equal(imageName)
  39. }
  40. })
  41. })