Bug 1898520 - Update AC isTranslateProcessing r=android-reviewers,giorga

In bug 1892715 the wait states for translations changed; however,
`isTranslateProcessing` logic did not change. This is to fix `isTranslateProcessing`
to use the longer wait state.

Differential Revision: https://phabricator.services.mozilla.com/D211439
This commit is contained in:
ohall-m 2024-05-27 12:46:53 +00:00
parent 7f35c45fa5
commit 977c6db99e
2 changed files with 16 additions and 2 deletions

View file

@ -88,6 +88,7 @@ internal object TranslationsStateReducer {
isOfferTranslate = isOfferTranslate, isOfferTranslate = isOfferTranslate,
isExpectedTranslate = isExpectedTranslate, isExpectedTranslate = isExpectedTranslate,
isTranslated = true, isTranslated = true,
isTranslateProcessing = false,
translationError = null, translationError = null,
translationEngineState = action.translationEngineState, translationEngineState = action.translationEngineState,
) )
@ -114,7 +115,6 @@ internal object TranslationsStateReducer {
// The isTranslated state will be identified on a translation state change. // The isTranslated state will be identified on a translation state change.
state.copyWithTranslationsState(action.tabId) { state.copyWithTranslationsState(action.tabId) {
it.copy( it.copy(
isTranslateProcessing = false,
translationError = null, translationError = null,
) )
} }

View file

@ -93,6 +93,12 @@ class TranslationsActionTest {
assertNull(tabState().translationsState.translationEngineState) assertNull(tabState().translationsState.translationEngineState)
assertFalse(tabState().translationsState.isTranslated) assertFalse(tabState().translationsState.isTranslated)
assertFalse(tabState().translationsState.isExpectedTranslate) assertFalse(tabState().translationsState.isExpectedTranslate)
assertFalse(tabState().translationsState.isTranslateProcessing)
// Set an initial state for is translate processing via a translation request:
store.dispatch(TranslationsAction.TranslateAction(tabId = tab.id, "en", "es", null))
.joinBlocking()
assertTrue(tabState().translationsState.isTranslateProcessing)
val translatedEngineState = TranslationEngineState( val translatedEngineState = TranslationEngineState(
detectedLanguages = DetectedLanguages(documentLangTag = "es", supportedDocumentLang = true, userPreferredLangTag = "en"), detectedLanguages = DetectedLanguages(documentLangTag = "es", supportedDocumentLang = true, userPreferredLangTag = "en"),
@ -109,6 +115,7 @@ class TranslationsActionTest {
assertEquals(translatedEngineState, tabState().translationsState.translationEngineState) assertEquals(translatedEngineState, tabState().translationsState.translationEngineState)
assertTrue(tabState().translationsState.isTranslated) assertTrue(tabState().translationsState.isTranslated)
assertFalse(tabState().translationsState.isExpectedTranslate) assertFalse(tabState().translationsState.isExpectedTranslate)
assertFalse(tabState().translationsState.isTranslateProcessing)
val nonTranslatedEngineState = TranslationEngineState( val nonTranslatedEngineState = TranslationEngineState(
detectedLanguages = DetectedLanguages(documentLangTag = "es", supportedDocumentLang = true, userPreferredLangTag = "en"), detectedLanguages = DetectedLanguages(documentLangTag = "es", supportedDocumentLang = true, userPreferredLangTag = "en"),
@ -269,7 +276,6 @@ class TranslationsActionTest {
// Action success // Action success
store.dispatch(TranslationsAction.TranslateSuccessAction(tabId = tab.id, operation = TranslationOperation.TRANSLATE)) store.dispatch(TranslationsAction.TranslateSuccessAction(tabId = tab.id, operation = TranslationOperation.TRANSLATE))
.joinBlocking() .joinBlocking()
assertEquals(false, tabState().translationsState.isTranslateProcessing)
assertEquals(null, tabState().translationsState.translationError) assertEquals(null, tabState().translationsState.translationError)
} }
@ -393,6 +399,12 @@ class TranslationsActionTest {
fun `WHEN a TranslateExceptionAction is dispatched due to an error THEN update the error condition according to the operation`() { fun `WHEN a TranslateExceptionAction is dispatched due to an error THEN update the error condition according to the operation`() {
// Initial state // Initial state
assertEquals(null, tabState().translationsState.translationError) assertEquals(null, tabState().translationsState.translationError)
assertFalse(tabState().translationsState.isTranslateProcessing)
// Set an initial state for is translate processing via a translation request:
store.dispatch(TranslationsAction.TranslateAction(tabId = tab.id, "en", "es", null))
.joinBlocking()
assertTrue(tabState().translationsState.isTranslateProcessing)
// TRANSLATE usage // TRANSLATE usage
val translateError = TranslationError.CouldNotLoadLanguagesError(null) val translateError = TranslationError.CouldNotLoadLanguagesError(null)
@ -404,6 +416,8 @@ class TranslationsActionTest {
), ),
).joinBlocking() ).joinBlocking()
assertEquals(translateError, tabState().translationsState.translationError) assertEquals(translateError, tabState().translationsState.translationError)
// A translate error should clear this state
assertFalse(tabState().translationsState.isTranslateProcessing)
// RESTORE usage // RESTORE usage
val restoreError = TranslationError.CouldNotRestoreError(null) val restoreError = TranslationError.CouldNotRestoreError(null)