Removing unnecessary event flows from generator viewmodel tests (#262)

This commit is contained in:
joshua-livefront 2023-11-20 14:39:29 -05:00 committed by Álison Fernandes
parent b168f6fb09
commit 58eb4d4107

View file

@ -209,26 +209,24 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val newLength = 16
val newLength = 16
viewModel.actionChannel.trySend(
GeneratorAction.MainType.Passcode.PasscodeType.Password.SliderLengthChange(
viewModel.actionChannel.trySend(
GeneratorAction.MainType.Passcode.PasscodeType.Password.SliderLengthChange(
length = newLength,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
length = newLength,
),
)
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
length = newLength,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Suppress("MaxLineLength")
@ -240,31 +238,29 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val useCapitals = true
val useCapitals = true
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleCapitalLettersChange(
useCapitals = useCapitals,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useCapitals = useCapitals,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleCapitalLettersChange(
useCapitals = useCapitals,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useCapitals = useCapitals,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Suppress("MaxLineLength")
@ -276,31 +272,29 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val useLowercase = true
val useLowercase = true
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleLowercaseLettersChange(
useLowercase = useLowercase,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useLowercase = useLowercase,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleLowercaseLettersChange(
useLowercase = useLowercase,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useLowercase = useLowercase,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Test
@ -310,26 +304,24 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val useNumbers = true
val useNumbers = true
viewModel.actionChannel.trySend(
GeneratorAction.MainType.Passcode.PasscodeType.Password.ToggleNumbersChange(
viewModel.actionChannel.trySend(
GeneratorAction.MainType.Passcode.PasscodeType.Password.ToggleNumbersChange(
useNumbers = useNumbers,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useNumbers = useNumbers,
),
)
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useNumbers = useNumbers,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Suppress("MaxLineLength")
@ -341,31 +333,29 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val useSpecialChars = true
val useSpecialChars = true
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleSpecialCharactersChange(
useSpecialChars = useSpecialChars,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useSpecialChars = useSpecialChars,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleSpecialCharactersChange(
useSpecialChars = useSpecialChars,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
useSpecialChars = useSpecialChars,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Suppress("MaxLineLength")
@ -377,26 +367,24 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val minNumbers = 4
val minNumbers = 4
viewModel.actionChannel.trySend(
GeneratorAction.MainType.Passcode.PasscodeType.Password.MinNumbersCounterChange(
viewModel.actionChannel.trySend(
GeneratorAction.MainType.Passcode.PasscodeType.Password.MinNumbersCounterChange(
minNumbers = minNumbers,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
minNumbers = minNumbers,
),
)
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
minNumbers = minNumbers,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Suppress("MaxLineLength")
@ -408,31 +396,29 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val minSpecial = 2
val minSpecial = 2
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.MinSpecialCharactersChange(
minSpecial = minSpecial,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
minSpecial = minSpecial,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.MinSpecialCharactersChange(
minSpecial = minSpecial,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
minSpecial = minSpecial,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Suppress("MaxLineLength")
@ -444,31 +430,29 @@ class GeneratorViewModelTest : BaseViewModelTest() {
GeneratedPasswordResult.Success(updatedGeneratedPassword),
)
viewModel.eventFlow.test {
val avoidAmbiguousChars = true
val avoidAmbiguousChars = true
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleAvoidAmbigousCharactersChange(
avoidAmbiguousChars = avoidAmbiguousChars,
),
)
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
avoidAmbiguousChars = avoidAmbiguousChars,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Password
.ToggleAvoidAmbigousCharactersChange(
avoidAmbiguousChars = avoidAmbiguousChars,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPasswordState.copy(
generatedText = updatedGeneratedPassword,
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Password(
avoidAmbiguousChars = avoidAmbiguousChars,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
}
@ -489,111 +473,103 @@ class GeneratorViewModelTest : BaseViewModelTest() {
@Test
fun `NumWordsCounterChange should update the numWords property correctly`() =
runTest {
viewModel.eventFlow.test {
val newNumWords = 4
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Passphrase
.NumWordsCounterChange(
numWords = newNumWords,
),
)
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
numWords = newNumWords,
),
val newNumWords = 4
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Passphrase
.NumWordsCounterChange(
numWords = newNumWords,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
numWords = newNumWords,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Test
fun `WordSeparatorTextChange should update wordSeparator correctly to new value`() =
runTest {
viewModel.eventFlow.test {
val newWordSeparatorChar = '_'
val newWordSeparatorChar = '_'
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType.Passphrase
.WordSeparatorTextChange(
wordSeparator = newWordSeparatorChar,
),
)
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
wordSeparator = newWordSeparatorChar,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType.Passphrase
.WordSeparatorTextChange(
wordSeparator = newWordSeparatorChar,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
wordSeparator = newWordSeparatorChar,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Test
fun `ToggleIncludeNumberChange should update the includeNumber property correctly`() =
runTest {
viewModel.eventFlow.test {
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Passphrase
.ToggleIncludeNumberChange(
includeNumber = true,
),
)
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
selectedType = GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
includeNumber = true,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Passphrase
.ToggleIncludeNumberChange(
includeNumber = true,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
selectedType = GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
includeNumber = true,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
@Test
fun `ToggleCapitalizeChange should update the capitalize property correctly`() =
runTest {
viewModel.eventFlow.test {
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Passphrase
.ToggleCapitalizeChange(
capitalize = true,
),
)
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
capitalize = true,
),
viewModel.actionChannel.trySend(
GeneratorAction
.MainType
.Passcode
.PasscodeType
.Passphrase
.ToggleCapitalizeChange(
capitalize = true,
),
)
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
val expectedState = defaultPassphraseState.copy(
selectedType = GeneratorState.MainType.Passcode(
GeneratorState.MainType.Passcode.PasscodeType.Passphrase(
capitalize = true,
),
),
)
assertEquals(expectedState, viewModel.stateFlow.value)
}
}
//region Helper Functions