image-name-setting.test.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { screen, within, render } from '@testing-library/react'
  2. import { expect } from 'chai'
  3. import fetchMock from 'fetch-mock'
  4. import type { ImageName } from '../../../../../types/project-settings'
  5. import { SettingsModalProvider } from '@/features/ide-redesign/contexts/settings-modal-context'
  6. import { EditorProviders } from '../../../helpers/editor-providers'
  7. import ImageNameSetting from '@/features/ide-redesign/components/settings/compiler-settings/image-name-setting'
  8. describe('<ImageNameSetting />', 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. <SettingsModalProvider>
  31. <ImageNameSetting />
  32. </SettingsModalProvider>
  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. })