root-document-setting.test.tsx 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { screen, within, render } from '@testing-library/react'
  2. import { expect } from 'chai'
  3. import fetchMock from 'fetch-mock'
  4. import { Folder } from '../../../../../types/folder'
  5. import { SettingsModalProvider } from '@/features/ide-redesign/contexts/settings-modal-context'
  6. import { EditorProviders } from '../../../helpers/editor-providers'
  7. import RootDocumentSetting from '@/features/ide-redesign/components/settings/compiler-settings/root-document-setting'
  8. describe('<RootDocumentSetting />', function () {
  9. const rootFolder: Folder = {
  10. _id: 'root-folder-id',
  11. name: 'rootFolder',
  12. docs: [
  13. {
  14. _id: '123abc',
  15. name: 'main.tex',
  16. },
  17. ],
  18. fileRefs: [],
  19. folders: [],
  20. }
  21. let originalSettings: typeof window.metaAttributesCache
  22. beforeEach(function () {
  23. originalSettings = window.metaAttributesCache.get('ol-ExposedSettings')
  24. window.metaAttributesCache.set('ol-ExposedSettings', {
  25. validRootDocExtensions: ['tex'],
  26. })
  27. })
  28. afterEach(function () {
  29. fetchMock.removeRoutes().clearHistory()
  30. window.metaAttributesCache.set('ol-ExposedSettings', originalSettings)
  31. })
  32. it('shows correct menu', async function () {
  33. render(
  34. <EditorProviders rootFolder={[rootFolder as any]}>
  35. <SettingsModalProvider>
  36. <RootDocumentSetting />
  37. </SettingsModalProvider>
  38. </EditorProviders>
  39. )
  40. const select = screen.getByLabelText('Main document')
  41. const optionOn = within(select).getByText('main.tex')
  42. expect(optionOn.getAttribute('value')).to.equal('123abc')
  43. })
  44. })