settings-document.test.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { screen, within } from '@testing-library/dom'
  2. import { expect } from 'chai'
  3. import sinon from 'sinon'
  4. import fetchMock from 'fetch-mock'
  5. import SettingsDocument from '../../../../../../frontend/js/features/editor-left-menu/components/settings/settings-document'
  6. import * as isValidTeXFileModule from '../../../../../../frontend/js/main/is-valid-tex-file'
  7. import { renderWithEditorContext } from '../../../../helpers/render-with-context'
  8. import { Folder } from '../../../../../../types/folder'
  9. describe('<SettingsDocument />', function () {
  10. let isValidTeXFileStub: sinon.SinonStub
  11. const rootFolder: Folder = {
  12. _id: 'root-folder-id',
  13. name: 'rootFolder',
  14. docs: [
  15. {
  16. _id: '123abc',
  17. name: 'main.tex',
  18. },
  19. ],
  20. fileRefs: [],
  21. folders: [],
  22. }
  23. beforeEach(function () {
  24. isValidTeXFileStub = sinon
  25. .stub(isValidTeXFileModule, 'default')
  26. .returns(true)
  27. })
  28. afterEach(function () {
  29. fetchMock.reset()
  30. isValidTeXFileStub.restore()
  31. })
  32. it('shows correct menu', async function () {
  33. renderWithEditorContext(<SettingsDocument />, {
  34. rootFolder: [rootFolder],
  35. })
  36. const select = screen.getByLabelText('Main document')
  37. const optionOn = within(select).getByText('main.tex')
  38. expect(optionOn.getAttribute('value')).to.equal('123abc')
  39. })
  40. })