CreatePollEvents -> CreatePollEvent

This commit is contained in:
Benoit Marty 2025-12-03 18:13:18 +01:00
parent 4afeb6210c
commit 32e2cabae4
5 changed files with 76 additions and 76 deletions

View file

@ -10,15 +10,15 @@ package io.element.android.features.poll.impl.create
import io.element.android.libraries.matrix.api.poll.PollKind import io.element.android.libraries.matrix.api.poll.PollKind
sealed interface CreatePollEvents { sealed interface CreatePollEvent {
data object Save : CreatePollEvents data object Save : CreatePollEvent
data class Delete(val confirmed: Boolean) : CreatePollEvents data class Delete(val confirmed: Boolean) : CreatePollEvent
data class SetQuestion(val question: String) : CreatePollEvents data class SetQuestion(val question: String) : CreatePollEvent
data class SetAnswer(val index: Int, val text: String) : CreatePollEvents data class SetAnswer(val index: Int, val text: String) : CreatePollEvent
data object AddAnswer : CreatePollEvents data object AddAnswer : CreatePollEvent
data class RemoveAnswer(val index: Int) : CreatePollEvents data class RemoveAnswer(val index: Int) : CreatePollEvent
data class SetPollKind(val pollKind: PollKind) : CreatePollEvents data class SetPollKind(val pollKind: PollKind) : CreatePollEvent
data object NavBack : CreatePollEvents data object NavBack : CreatePollEvent
data object ConfirmNavBack : CreatePollEvents data object ConfirmNavBack : CreatePollEvent
data object HideConfirmation : CreatePollEvents data object HideConfirmation : CreatePollEvent
} }

View file

@ -97,9 +97,9 @@ class CreatePollPresenter(
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
fun handleEvent(event: CreatePollEvents) { fun handleEvent(event: CreatePollEvent) {
when (event) { when (event) {
is CreatePollEvents.Save -> scope.launch { is CreatePollEvent.Save -> scope.launch {
if (canSave) { if (canSave) {
repository.savePoll( repository.savePoll(
existingPollId = when (mode) { existingPollId = when (mode) {
@ -123,7 +123,7 @@ class CreatePollPresenter(
Timber.d("Cannot create poll") Timber.d("Cannot create poll")
} }
} }
is CreatePollEvents.Delete -> { is CreatePollEvent.Delete -> {
if (mode !is CreatePollMode.EditPoll) { if (mode !is CreatePollMode.EditPoll) {
return return
} }
@ -139,25 +139,25 @@ class CreatePollPresenter(
navigateUp() navigateUp()
} }
} }
is CreatePollEvents.AddAnswer -> { is CreatePollEvent.AddAnswer -> {
poll = poll.withNewAnswer() poll = poll.withNewAnswer()
} }
is CreatePollEvents.RemoveAnswer -> { is CreatePollEvent.RemoveAnswer -> {
poll = poll.withAnswerRemoved(event.index) poll = poll.withAnswerRemoved(event.index)
} }
is CreatePollEvents.SetAnswer -> { is CreatePollEvent.SetAnswer -> {
poll = poll.withAnswerChanged(event.index, event.text) poll = poll.withAnswerChanged(event.index, event.text)
} }
is CreatePollEvents.SetPollKind -> { is CreatePollEvent.SetPollKind -> {
poll = poll.copy(isDisclosed = event.pollKind.isDisclosed) poll = poll.copy(isDisclosed = event.pollKind.isDisclosed)
} }
is CreatePollEvents.SetQuestion -> { is CreatePollEvent.SetQuestion -> {
poll = poll.copy(question = event.question) poll = poll.copy(question = event.question)
} }
is CreatePollEvents.NavBack -> { is CreatePollEvent.NavBack -> {
navigateUp() navigateUp()
} }
CreatePollEvents.ConfirmNavBack -> { CreatePollEvent.ConfirmNavBack -> {
val shouldConfirm = isDirty val shouldConfirm = isDirty
if (shouldConfirm) { if (shouldConfirm) {
showBackConfirmation = true showBackConfirmation = true
@ -165,7 +165,7 @@ class CreatePollPresenter(
navigateUp() navigateUp()
} }
} }
is CreatePollEvents.HideConfirmation -> { is CreatePollEvent.HideConfirmation -> {
showBackConfirmation = false showBackConfirmation = false
showDeleteConfirmation = false showDeleteConfirmation = false
} }

View file

@ -20,7 +20,7 @@ data class CreatePollState(
val pollKind: PollKind, val pollKind: PollKind,
val showBackConfirmation: Boolean, val showBackConfirmation: Boolean,
val showDeleteConfirmation: Boolean, val showDeleteConfirmation: Boolean,
val eventSink: (CreatePollEvents) -> Unit, val eventSink: (CreatePollEvent) -> Unit,
) { ) {
enum class Mode { enum class Mode {
New, New,

View file

@ -62,21 +62,21 @@ fun CreatePollView(
) { ) {
val coroutineScope = rememberCoroutineScope() val coroutineScope = rememberCoroutineScope()
val navBack = { state.eventSink(CreatePollEvents.ConfirmNavBack) } val navBack = { state.eventSink(CreatePollEvent.ConfirmNavBack) }
BackHandler(onBack = navBack) BackHandler(onBack = navBack)
if (state.showBackConfirmation) { if (state.showBackConfirmation) {
SaveChangesDialog( SaveChangesDialog(
onSaveClick = { state.eventSink(CreatePollEvents.Save) }, onSaveClick = { state.eventSink(CreatePollEvent.Save) },
onDiscardClick = { state.eventSink(CreatePollEvents.NavBack) }, onDiscardClick = { state.eventSink(CreatePollEvent.NavBack) },
onDismiss = { state.eventSink(CreatePollEvents.HideConfirmation) }, onDismiss = { state.eventSink(CreatePollEvent.HideConfirmation) },
) )
} }
if (state.showDeleteConfirmation) { if (state.showDeleteConfirmation) {
ConfirmationDialog( ConfirmationDialog(
title = stringResource(id = R.string.screen_edit_poll_delete_confirmation_title), title = stringResource(id = R.string.screen_edit_poll_delete_confirmation_title),
content = stringResource(id = R.string.screen_edit_poll_delete_confirmation), content = stringResource(id = R.string.screen_edit_poll_delete_confirmation),
onSubmitClick = { state.eventSink(CreatePollEvents.Delete(confirmed = true)) }, onSubmitClick = { state.eventSink(CreatePollEvent.Delete(confirmed = true)) },
onDismiss = { state.eventSink(CreatePollEvents.HideConfirmation) } onDismiss = { state.eventSink(CreatePollEvent.HideConfirmation) }
) )
} }
val questionFocusRequester = remember { FocusRequester() } val questionFocusRequester = remember { FocusRequester() }
@ -91,7 +91,7 @@ fun CreatePollView(
mode = state.mode, mode = state.mode,
saveEnabled = state.canSave, saveEnabled = state.canSave,
onBackClick = navBack, onBackClick = navBack,
onSaveClick = { state.eventSink(CreatePollEvents.Save) } onSaveClick = { state.eventSink(CreatePollEvent.Save) }
) )
}, },
) { paddingValues -> ) { paddingValues ->
@ -112,7 +112,7 @@ fun CreatePollView(
label = stringResource(id = R.string.screen_create_poll_question_desc), label = stringResource(id = R.string.screen_create_poll_question_desc),
value = state.question, value = state.question,
onValueChange = { onValueChange = {
state.eventSink(CreatePollEvents.SetQuestion(it)) state.eventSink(CreatePollEvent.SetQuestion(it))
}, },
modifier = Modifier modifier = Modifier
.focusRequester(questionFocusRequester) .focusRequester(questionFocusRequester)
@ -131,7 +131,7 @@ fun CreatePollView(
TextField( TextField(
value = answer.text, value = answer.text,
onValueChange = { onValueChange = {
state.eventSink(CreatePollEvents.SetAnswer(index, it)) state.eventSink(CreatePollEvent.SetAnswer(index, it))
}, },
modifier = Modifier modifier = Modifier
.then(if (isLastItem) Modifier.focusRequester(answerFocusRequester) else Modifier) .then(if (isLastItem) Modifier.focusRequester(answerFocusRequester) else Modifier)
@ -145,7 +145,7 @@ fun CreatePollView(
imageVector = CompoundIcons.Delete(), imageVector = CompoundIcons.Delete(),
contentDescription = stringResource(R.string.screen_create_poll_delete_option_a11y, answer.text), contentDescription = stringResource(R.string.screen_create_poll_delete_option_a11y, answer.text),
modifier = Modifier.clickable(answer.canDelete) { modifier = Modifier.clickable(answer.canDelete) {
state.eventSink(CreatePollEvents.RemoveAnswer(index)) state.eventSink(CreatePollEvent.RemoveAnswer(index))
}, },
) )
}, },
@ -161,7 +161,7 @@ fun CreatePollView(
), ),
style = ListItemStyle.Primary, style = ListItemStyle.Primary,
onClick = { onClick = {
state.eventSink(CreatePollEvents.AddAnswer) state.eventSink(CreatePollEvent.AddAnswer)
coroutineScope.launch(Dispatchers.Main) { coroutineScope.launch(Dispatchers.Main) {
lazyListState.animateScrollToItem(state.answers.size + 1) lazyListState.animateScrollToItem(state.answers.size + 1)
answerFocusRequester.requestFocus() answerFocusRequester.requestFocus()
@ -181,7 +181,7 @@ fun CreatePollView(
), ),
onClick = { onClick = {
state.eventSink( state.eventSink(
CreatePollEvents.SetPollKind( CreatePollEvent.SetPollKind(
if (state.pollKind == PollKind.Disclosed) PollKind.Undisclosed else PollKind.Disclosed if (state.pollKind == PollKind.Disclosed) PollKind.Undisclosed else PollKind.Disclosed
) )
) )
@ -191,7 +191,7 @@ fun CreatePollView(
ListItem( ListItem(
headlineContent = { Text(text = stringResource(id = CommonStrings.action_delete_poll)) }, headlineContent = { Text(text = stringResource(id = CommonStrings.action_delete_poll)) },
style = ListItemStyle.Destructive, style = ListItemStyle.Destructive,
onClick = { state.eventSink(CreatePollEvents.Delete(confirmed = false)) }, onClick = { state.eventSink(CreatePollEvent.Delete(confirmed = false)) },
) )
} }
} }

View file

@ -104,15 +104,15 @@ class CreatePollPresenterTest {
val initial = awaitItem() val initial = awaitItem()
assertThat(initial.canSave).isFalse() assertThat(initial.canSave).isFalse()
initial.eventSink(CreatePollEvents.SetQuestion("A question?")) initial.eventSink(CreatePollEvent.SetQuestion("A question?"))
val questionSet = awaitItem() val questionSet = awaitItem()
assertThat(questionSet.canSave).isFalse() assertThat(questionSet.canSave).isFalse()
questionSet.eventSink(CreatePollEvents.SetAnswer(0, "Answer 1")) questionSet.eventSink(CreatePollEvent.SetAnswer(0, "Answer 1"))
val answer1Set = awaitItem() val answer1Set = awaitItem()
assertThat(answer1Set.canSave).isFalse() assertThat(answer1Set.canSave).isFalse()
answer1Set.eventSink(CreatePollEvents.SetAnswer(1, "Answer 2")) answer1Set.eventSink(CreatePollEvent.SetAnswer(1, "Answer 2"))
val answer2Set = awaitItem() val answer2Set = awaitItem()
assertThat(answer2Set.canSave).isTrue() assertThat(answer2Set.canSave).isTrue()
} }
@ -133,11 +133,11 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
initial.eventSink(CreatePollEvents.SetQuestion("A question?")) initial.eventSink(CreatePollEvent.SetQuestion("A question?"))
initial.eventSink(CreatePollEvents.SetAnswer(0, "Answer 1")) initial.eventSink(CreatePollEvent.SetAnswer(0, "Answer 1"))
initial.eventSink(CreatePollEvents.SetAnswer(1, "Answer 2")) initial.eventSink(CreatePollEvent.SetAnswer(1, "Answer 2"))
skipItems(3) skipItems(3)
initial.eventSink(CreatePollEvents.Save) initial.eventSink(CreatePollEvent.Save)
delay(1) // Wait for the coroutine to finish delay(1) // Wait for the coroutine to finish
createPollResult.assertions().isCalledOnce() createPollResult.assertions().isCalledOnce()
.with( .with(
@ -182,10 +182,10 @@ class CreatePollPresenterTest {
moleculeFlow(RecompositionMode.Immediate) { moleculeFlow(RecompositionMode.Immediate) {
presenter.present() presenter.present()
}.test { }.test {
awaitDefaultItem().eventSink(CreatePollEvents.SetQuestion("A question?")) awaitDefaultItem().eventSink(CreatePollEvent.SetQuestion("A question?"))
awaitItem().eventSink(CreatePollEvents.SetAnswer(0, "Answer 1")) awaitItem().eventSink(CreatePollEvent.SetAnswer(0, "Answer 1"))
awaitItem().eventSink(CreatePollEvents.SetAnswer(1, "Answer 2")) awaitItem().eventSink(CreatePollEvent.SetAnswer(1, "Answer 2"))
awaitItem().eventSink(CreatePollEvents.Save) awaitItem().eventSink(CreatePollEvent.Save)
delay(1) // Wait for the coroutine to finish delay(1) // Wait for the coroutine to finish
createPollResult.assertions().isCalledOnce() createPollResult.assertions().isCalledOnce()
assertThat(fakeAnalyticsService.capturedEvents).isEmpty() assertThat(fakeAnalyticsService.capturedEvents).isEmpty()
@ -210,20 +210,20 @@ class CreatePollPresenterTest {
}.test { }.test {
awaitDefaultItem() awaitDefaultItem()
awaitPollLoaded().apply { awaitPollLoaded().apply {
eventSink(CreatePollEvents.SetQuestion("Changed question")) eventSink(CreatePollEvent.SetQuestion("Changed question"))
} }
awaitItem().apply { awaitItem().apply {
eventSink(CreatePollEvents.SetAnswer(0, "Changed answer 1")) eventSink(CreatePollEvent.SetAnswer(0, "Changed answer 1"))
} }
awaitItem().apply { awaitItem().apply {
eventSink(CreatePollEvents.SetAnswer(1, "Changed answer 2")) eventSink(CreatePollEvent.SetAnswer(1, "Changed answer 2"))
} }
awaitPollLoaded( awaitPollLoaded(
newQuestion = "Changed question", newQuestion = "Changed question",
newAnswer1 = "Changed answer 1", newAnswer1 = "Changed answer 1",
newAnswer2 = "Changed answer 2", newAnswer2 = "Changed answer 2",
).apply { ).apply {
eventSink(CreatePollEvents.Save) eventSink(CreatePollEvent.Save)
} }
advanceUntilIdle() // Wait for the coroutine to finish advanceUntilIdle() // Wait for the coroutine to finish
@ -275,8 +275,8 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
awaitDefaultItem() awaitDefaultItem()
awaitPollLoaded().eventSink(CreatePollEvents.SetAnswer(0, "A")) awaitPollLoaded().eventSink(CreatePollEvent.SetAnswer(0, "A"))
awaitPollLoaded(newAnswer1 = "A").eventSink(CreatePollEvents.Save) awaitPollLoaded(newAnswer1 = "A").eventSink(CreatePollEvent.Save)
advanceUntilIdle() // Wait for the coroutine to finish advanceUntilIdle() // Wait for the coroutine to finish
editPollLambda.assertions().isCalledOnce() editPollLambda.assertions().isCalledOnce()
assertThat(fakeAnalyticsService.capturedEvents).isEmpty() assertThat(fakeAnalyticsService.capturedEvents).isEmpty()
@ -296,12 +296,12 @@ class CreatePollPresenterTest {
val initial = awaitItem() val initial = awaitItem()
assertThat(initial.answers.size).isEqualTo(2) assertThat(initial.answers.size).isEqualTo(2)
initial.eventSink(CreatePollEvents.AddAnswer) initial.eventSink(CreatePollEvent.AddAnswer)
val answerAdded = awaitItem() val answerAdded = awaitItem()
assertThat(answerAdded.answers.size).isEqualTo(3) assertThat(answerAdded.answers.size).isEqualTo(3)
assertThat(answerAdded.answers[2].text).isEmpty() assertThat(answerAdded.answers[2].text).isEmpty()
initial.eventSink(CreatePollEvents.RemoveAnswer(2)) initial.eventSink(CreatePollEvent.RemoveAnswer(2))
val answerRemoved = awaitItem() val answerRemoved = awaitItem()
assertThat(answerRemoved.answers.size).isEqualTo(2) assertThat(answerRemoved.answers.size).isEqualTo(2)
} }
@ -314,7 +314,7 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
initial.eventSink(CreatePollEvents.SetQuestion("A question?")) initial.eventSink(CreatePollEvent.SetQuestion("A question?"))
val questionSet = awaitItem() val questionSet = awaitItem()
assertThat(questionSet.question).isEqualTo("A question?") assertThat(questionSet.question).isEqualTo("A question?")
} }
@ -327,7 +327,7 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
initial.eventSink(CreatePollEvents.SetAnswer(0, "This is answer 1")) initial.eventSink(CreatePollEvent.SetAnswer(0, "This is answer 1"))
val answerSet = awaitItem() val answerSet = awaitItem()
assertThat(answerSet.answers.first().text).isEqualTo("This is answer 1") assertThat(answerSet.answers.first().text).isEqualTo("This is answer 1")
} }
@ -340,7 +340,7 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
initial.eventSink(CreatePollEvents.SetPollKind(PollKind.Undisclosed)) initial.eventSink(CreatePollEvent.SetPollKind(PollKind.Undisclosed))
val kindSet = awaitItem() val kindSet = awaitItem()
assertThat(kindSet.pollKind).isEqualTo(PollKind.Undisclosed) assertThat(kindSet.pollKind).isEqualTo(PollKind.Undisclosed)
} }
@ -355,10 +355,10 @@ class CreatePollPresenterTest {
val initial = awaitItem() val initial = awaitItem()
assertThat(initial.canAddAnswer).isTrue() assertThat(initial.canAddAnswer).isTrue()
repeat(17) { repeat(17) {
initial.eventSink(CreatePollEvents.AddAnswer) initial.eventSink(CreatePollEvent.AddAnswer)
assertThat(awaitItem().canAddAnswer).isTrue() assertThat(awaitItem().canAddAnswer).isTrue()
} }
initial.eventSink(CreatePollEvents.AddAnswer) initial.eventSink(CreatePollEvent.AddAnswer)
assertThat(awaitItem().canAddAnswer).isFalse() assertThat(awaitItem().canAddAnswer).isFalse()
} }
} }
@ -371,7 +371,7 @@ class CreatePollPresenterTest {
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
assertThat(initial.answers.all { it.canDelete }).isFalse() assertThat(initial.answers.all { it.canDelete }).isFalse()
initial.eventSink(CreatePollEvents.AddAnswer) initial.eventSink(CreatePollEvent.AddAnswer)
assertThat(awaitItem().answers.all { it.canDelete }).isTrue() assertThat(awaitItem().answers.all { it.canDelete }).isTrue()
} }
} }
@ -383,7 +383,7 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
initial.eventSink(CreatePollEvents.SetAnswer(0, "A".repeat(241))) initial.eventSink(CreatePollEvent.SetAnswer(0, "A".repeat(241)))
assertThat(awaitItem().answers.first().text.length).isEqualTo(240) assertThat(awaitItem().answers.first().text.length).isEqualTo(240)
} }
} }
@ -396,7 +396,7 @@ class CreatePollPresenterTest {
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
assertThat(navUpInvocationsCount).isEqualTo(0) assertThat(navUpInvocationsCount).isEqualTo(0)
initial.eventSink(CreatePollEvents.NavBack) initial.eventSink(CreatePollEvent.NavBack)
assertThat(navUpInvocationsCount).isEqualTo(1) assertThat(navUpInvocationsCount).isEqualTo(1)
} }
} }
@ -410,7 +410,7 @@ class CreatePollPresenterTest {
val initial = awaitItem() val initial = awaitItem()
assertThat(navUpInvocationsCount).isEqualTo(0) assertThat(navUpInvocationsCount).isEqualTo(0)
assertThat(initial.showBackConfirmation).isFalse() assertThat(initial.showBackConfirmation).isFalse()
initial.eventSink(CreatePollEvents.ConfirmNavBack) initial.eventSink(CreatePollEvent.ConfirmNavBack)
assertThat(navUpInvocationsCount).isEqualTo(1) assertThat(navUpInvocationsCount).isEqualTo(1)
} }
} }
@ -422,11 +422,11 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
val initial = awaitItem() val initial = awaitItem()
initial.eventSink(CreatePollEvents.SetQuestion("Non blank")) initial.eventSink(CreatePollEvent.SetQuestion("Non blank"))
assertThat(awaitItem().showBackConfirmation).isFalse() assertThat(awaitItem().showBackConfirmation).isFalse()
initial.eventSink(CreatePollEvents.ConfirmNavBack) initial.eventSink(CreatePollEvent.ConfirmNavBack)
assertThat(awaitItem().showBackConfirmation).isTrue() assertThat(awaitItem().showBackConfirmation).isTrue()
initial.eventSink(CreatePollEvents.HideConfirmation) initial.eventSink(CreatePollEvent.HideConfirmation)
assertThat(awaitItem().showBackConfirmation).isFalse() assertThat(awaitItem().showBackConfirmation).isFalse()
assertThat(navUpInvocationsCount).isEqualTo(0) assertThat(navUpInvocationsCount).isEqualTo(0)
} }
@ -442,7 +442,7 @@ class CreatePollPresenterTest {
val loaded = awaitPollLoaded() val loaded = awaitPollLoaded()
assertThat(navUpInvocationsCount).isEqualTo(0) assertThat(navUpInvocationsCount).isEqualTo(0)
assertThat(loaded.showBackConfirmation).isFalse() assertThat(loaded.showBackConfirmation).isFalse()
loaded.eventSink(CreatePollEvents.ConfirmNavBack) loaded.eventSink(CreatePollEvent.ConfirmNavBack)
assertThat(navUpInvocationsCount).isEqualTo(1) assertThat(navUpInvocationsCount).isEqualTo(1)
} }
} }
@ -455,11 +455,11 @@ class CreatePollPresenterTest {
}.test { }.test {
awaitDefaultItem() awaitDefaultItem()
val loaded = awaitPollLoaded() val loaded = awaitPollLoaded()
loaded.eventSink(CreatePollEvents.SetQuestion("CHANGED")) loaded.eventSink(CreatePollEvent.SetQuestion("CHANGED"))
assertThat(awaitItem().showBackConfirmation).isFalse() assertThat(awaitItem().showBackConfirmation).isFalse()
loaded.eventSink(CreatePollEvents.ConfirmNavBack) loaded.eventSink(CreatePollEvent.ConfirmNavBack)
assertThat(awaitItem().showBackConfirmation).isTrue() assertThat(awaitItem().showBackConfirmation).isTrue()
loaded.eventSink(CreatePollEvents.HideConfirmation) loaded.eventSink(CreatePollEvent.HideConfirmation)
assertThat(awaitItem().showBackConfirmation).isFalse() assertThat(awaitItem().showBackConfirmation).isFalse()
assertThat(navUpInvocationsCount).isEqualTo(0) assertThat(navUpInvocationsCount).isEqualTo(0)
} }
@ -474,7 +474,7 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
awaitDefaultItem() awaitDefaultItem()
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false)) awaitPollLoaded().eventSink(CreatePollEvent.Delete(confirmed = false))
awaitDeleteConfirmation() awaitDeleteConfirmation()
assert(redactEventLambda).isNeverCalled() assert(redactEventLambda).isNeverCalled()
} }
@ -489,8 +489,8 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
awaitDefaultItem() awaitDefaultItem()
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false)) awaitPollLoaded().eventSink(CreatePollEvent.Delete(confirmed = false))
awaitDeleteConfirmation().eventSink(CreatePollEvents.HideConfirmation) awaitDeleteConfirmation().eventSink(CreatePollEvent.HideConfirmation)
awaitPollLoaded().apply { awaitPollLoaded().apply {
assertThat(showDeleteConfirmation).isFalse() assertThat(showDeleteConfirmation).isFalse()
} }
@ -507,8 +507,8 @@ class CreatePollPresenterTest {
presenter.present() presenter.present()
}.test { }.test {
awaitDefaultItem() awaitDefaultItem()
awaitPollLoaded().eventSink(CreatePollEvents.Delete(confirmed = false)) awaitPollLoaded().eventSink(CreatePollEvent.Delete(confirmed = false))
awaitDeleteConfirmation().eventSink(CreatePollEvents.Delete(confirmed = true)) awaitDeleteConfirmation().eventSink(CreatePollEvent.Delete(confirmed = true))
awaitPollLoaded().apply { awaitPollLoaded().apply {
assertThat(showDeleteConfirmation).isFalse() assertThat(showDeleteConfirmation).isFalse()
} }