Răsfoiți Sursa

Merge pull request #10975 from overleaf/mf-settings-editor-new-tests

Add new tests for editor left menu (compiler & dictionary menu)

GitOrigin-RevId: 1b21fcc51a85901bce4f7b50e557146881df4c3d
Mathias Jakobsen 3 ani în urmă
părinte
comite
da1d4aba6d

+ 29 - 0
services/web/test/frontend/features/editor-left-menu/components/settings/settings-compiler.test.tsx

@@ -0,0 +1,29 @@
+import { screen, within } from '@testing-library/dom'
+import { expect } from 'chai'
+import fetchMock from 'fetch-mock'
+import SettingsCompiler from '../../../../../../frontend/js/features/editor-left-menu/components/settings/settings-compiler'
+import { renderWithEditorContext } from '../../../../helpers/render-with-context'
+
+describe('<SettingsCompiler />', function () {
+  afterEach(function () {
+    fetchMock.reset()
+  })
+
+  it('shows correct menu', async function () {
+    renderWithEditorContext(<SettingsCompiler />)
+
+    const select = screen.getByLabelText('Compiler')
+
+    const optionPdfLaTeX = within(select).getByText('pdfLaTeX')
+    expect(optionPdfLaTeX.getAttribute('value')).to.equal('pdflatex')
+
+    const optionLaTeX = within(select).getByText('LaTeX')
+    expect(optionLaTeX.getAttribute('value')).to.equal('latex')
+
+    const optionXeLaTeX = within(select).getByText('XeLaTeX')
+    expect(optionXeLaTeX.getAttribute('value')).to.equal('xelatex')
+
+    const optionLuaLaTeX = within(select).getByText('LuaLaTeX')
+    expect(optionLuaLaTeX.getAttribute('value')).to.equal('lualatex')
+  })
+})

+ 24 - 0
services/web/test/frontend/features/editor-left-menu/components/settings/settings-dictionary.test.tsx

@@ -0,0 +1,24 @@
+import { fireEvent, screen, within } from '@testing-library/dom'
+import { expect } from 'chai'
+import SettingsDictionary from '../../../../../../frontend/js/features/editor-left-menu/components/settings/settings-dictionary'
+import { renderWithEditorContext } from '../../../../helpers/render-with-context'
+
+describe('<SettingsDictionary />', function () {
+  it('open dictionary modal', function () {
+    renderWithEditorContext(<SettingsDictionary />)
+
+    screen.getByText('Dictionary')
+
+    const button = screen.getByRole('button', { name: 'Edit' })
+    fireEvent.click(button)
+
+    const modal = screen.getAllByRole('dialog')[0]
+
+    within(modal).getByRole('heading', { name: 'Edit Dictionary' })
+    within(modal).getByText('Your custom dictionary is empty.')
+
+    const doneButton = within(modal).getByRole('button', { name: 'Done' })
+    fireEvent.click(doneButton)
+    expect(screen.queryByRole('dialog')).to.be.null
+  })
+})