Просмотр исходного кода

Merge pull request #16143 from overleaf/revert-15982-jel-dictionary-unlearn

Revert "[web] Only remove dictionary word from UI if unlearn request is successful"

GitOrigin-RevId: f95b3af48cf4de7e51fa1c06682c264e13dedaf9
Jessica Lawshe 2 лет назад
Родитель
Сommit
4e51d6cd81

+ 2 - 5
services/web/frontend/js/features/dictionary/components/dictionary-modal-content.tsx

@@ -23,17 +23,14 @@ export default function DictionaryModalContent({
 
   const handleRemove = useCallback(
     word => {
+      ignoredWords.remove(word)
       runAsync(
         postJSON('/spelling/unlearn', {
           body: {
             word,
           },
         })
-      )
-        .then(() => {
-          ignoredWords.remove(word)
-        })
-        .catch(debugConsole.error)
+      ).catch(debugConsole.error)
     },
     [runAsync]
   )

+ 3 - 8
services/web/test/frontend/features/dictionary/components/dictionary-modal-content.test.jsx

@@ -1,4 +1,4 @@
-import { screen, fireEvent, waitFor } from '@testing-library/react'
+import { screen, fireEvent } from '@testing-library/react'
 import { expect } from 'chai'
 import fetchMock from 'fetch-mock'
 import DictionaryModal from '../../../../../frontend/js/features/dictionary/components/dictionary-modal'
@@ -8,7 +8,6 @@ function setLearnedWords(words) {
   window.metaAttributesCache.set('ol-learnedWords', words)
   window.dispatchEvent(new CustomEvent('learnedWords:doreset'))
 }
-
 describe('<DictionaryModalContent />', function () {
   beforeEach(function () {
     window.metaAttributesCache = window.metaAttributesCache || new Map()
@@ -17,7 +16,6 @@ describe('<DictionaryModalContent />', function () {
   afterEach(function () {
     window.metaAttributesCache = new Map()
     fetchMock.reset()
-    window.dispatchEvent(new CustomEvent('learnedWords:doreset'))
   })
 
   it('list words', async function () {
@@ -37,14 +35,12 @@ describe('<DictionaryModalContent />', function () {
     fetchMock.post('/spelling/unlearn', 200)
     setLearnedWords(['Foo', 'bar'])
     renderWithEditorContext(<DictionaryModal show handleHide={() => {}} />)
-    screen.getByText('Foo')
     screen.getByText('bar')
     const [firstButton] = screen.getAllByRole('button', {
       name: 'Remove from dictionary',
     })
     fireEvent.click(firstButton)
-    await fetchMock.flush()
-    await waitFor(() => expect(screen.queryByText('bar')).to.not.exist)
+    expect(screen.queryByText('bar')).to.not.exist
     screen.getByText('Foo')
   })
 
@@ -52,13 +48,12 @@ describe('<DictionaryModalContent />', function () {
     fetchMock.post('/spelling/unlearn', 500)
     setLearnedWords(['foo'])
     renderWithEditorContext(<DictionaryModal show handleHide={() => {}} />)
-    screen.getByText('foo')
     const [firstButton] = screen.getAllByRole('button', {
       name: 'Remove from dictionary',
     })
     fireEvent.click(firstButton)
     await fetchMock.flush()
     screen.getByText('Sorry, something went wrong')
-    screen.getByText('foo')
+    screen.getByText('Your custom dictionary is empty.')
   })
 })