spell-check-setting.test.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { screen, within, render } from '@testing-library/react'
  2. import { expect } from 'chai'
  3. import fetchMock from 'fetch-mock'
  4. import type { SpellCheckLanguage } from '../../../../../types/project-settings'
  5. import { EditorProviders } from '../../../helpers/editor-providers'
  6. import { SettingsModalProvider } from '@/features/ide-redesign/contexts/settings-modal-context'
  7. import SpellCheckSetting from '@/features/ide-redesign/components/settings/editor-settings/spell-check-setting'
  8. describe('<SpellCheckSetting />', function () {
  9. const languages: SpellCheckLanguage[] = [
  10. {
  11. name: 'Lang 1',
  12. code: 'lang-1',
  13. dic: 'lang_1',
  14. },
  15. {
  16. name: 'Lang 2',
  17. code: 'lang-2',
  18. dic: 'lang_2',
  19. },
  20. ]
  21. beforeEach(function () {
  22. window.metaAttributesCache.set('ol-languages', languages)
  23. })
  24. afterEach(function () {
  25. fetchMock.removeRoutes().clearHistory()
  26. })
  27. it('shows correct menu', async function () {
  28. render(
  29. <EditorProviders>
  30. <SettingsModalProvider>
  31. <SpellCheckSetting />
  32. </SettingsModalProvider>
  33. </EditorProviders>
  34. )
  35. const select = screen.getByLabelText('Spellcheck language')
  36. const optionEmpty = within(select).getByText('Off')
  37. expect(optionEmpty.getAttribute('value')).to.equal('')
  38. for (const language of languages) {
  39. const option = within(select).getByText(language.name)
  40. expect(option.getAttribute('value')).to.equal(language.code)
  41. }
  42. })
  43. })