@ -50,13 +50,14 @@ import io.element.android.libraries.textcomposer.model.VoiceMessageState
@@ -50,13 +50,14 @@ import io.element.android.libraries.textcomposer.model.VoiceMessageState
import io.element.android.libraries.voicerecorder.test.FakeVoiceRecorder
import io.element.android.services.analytics.test.FakeAnalyticsService
import io.element.android.tests.testutils.WarmUpRule
import kotlinx.collections.immutable.toPersistentList
import kotlinx.collections.immutable.toImmutableList
import kotlinx.collections.immutable.toPersistentList
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runTest
import org.junit.Rule
import org.junit.Test
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
class VoiceMessageComposerPresenterTest {
@ -195,7 +196,7 @@ class VoiceMessageComposerPresenterTest {
@@ -195,7 +196,7 @@ class VoiceMessageComposerPresenterTest {
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . RecordButtonEvent ( PressEvent . LongPressEnd ) )
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . PlayerEvent ( VoiceMessagePlayerEvent . Play ) )
val finalState = awaitItem ( ) . also {
assertThat ( it . voiceMessageState ) . isEqualTo ( aPreviewState ( isPlaying = true , playbackProgress = 0.1f ) )
assertThat ( it . voiceMessageState ) . isEqualTo ( aPreviewState ( isPlaying = true , playbackProgress = 0.1f , time = RECORDING _DURATION ) )
}
voiceRecorder . assertCalls ( started = 1 , stopped = 1 , deleted = 0 )
@ -214,7 +215,7 @@ class VoiceMessageComposerPresenterTest {
@@ -214,7 +215,7 @@ class VoiceMessageComposerPresenterTest {
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . PlayerEvent ( VoiceMessagePlayerEvent . Play ) )
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . PlayerEvent ( VoiceMessagePlayerEvent . Pause ) )
val finalState = awaitItem ( ) . also {
assertThat ( it . voiceMessageState ) . isEqualTo ( aPreviewState ( isPlaying = false , playbackProgress = 0.1f ) )
assertThat ( it . voiceMessageState ) . isEqualTo ( aPreviewState ( isPlaying = false , playbackProgress = 0.1f , time = RECORDING _DURATION ) )
}
voiceRecorder . assertCalls ( started = 1 , stopped = 1 , deleted = 0 )
@ -251,7 +252,7 @@ class VoiceMessageComposerPresenterTest {
@@ -251,7 +252,7 @@ class VoiceMessageComposerPresenterTest {
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . PlayerEvent ( VoiceMessagePlayerEvent . Play ) )
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . DeleteVoiceMessage )
awaitItem ( ) . apply {
assertThat ( voiceMessageState ) . isEqualTo ( aPreviewState ( isPlaying = false , playbackProgress = 0.1f ) )
assertThat ( voiceMessageState ) . isEqualTo ( aPreviewState ( isPlaying = false , playbackProgress = 0.1f , time = RECORDING _DURATION ) )
}
val finalState = awaitItem ( )
@ -321,9 +322,11 @@ class VoiceMessageComposerPresenterTest {
@@ -321,9 +322,11 @@ class VoiceMessageComposerPresenterTest {
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . RecordButtonEvent ( PressEvent . LongPressEnd ) )
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . PlayerEvent ( VoiceMessagePlayerEvent . Play ) )
awaitItem ( ) . eventSink ( VoiceMessageComposerEvents . SendVoiceMessage )
assertThat ( awaitItem ( ) . voiceMessageState ) . isEqualTo ( aPreviewState (
isSending = true , isPlaying = false , playbackProgress = 0.1f
) )
assertThat ( awaitItem ( ) . voiceMessageState ) . isEqualTo (
aPreviewState (
isSending = true , isPlaying = false , playbackProgress = 0.1f , time = RECORDING _DURATION
)
)
val finalState = awaitItem ( )
assertThat ( finalState . voiceMessageState ) . isEqualTo ( VoiceMessageState . Idle )
@ -570,7 +573,7 @@ class VoiceMessageComposerPresenterTest {
@@ -570,7 +573,7 @@ class VoiceMessageComposerPresenterTest {
is VoiceMessageState . Preview -> when ( state . isPlaying ) {
// If the preview was playing, it pauses
true -> awaitItem ( ) . apply {
assertThat ( voiceMessageState ) . isEqualTo ( aPreviewState ( playbackProgress = 0.1f ) )
assertThat ( voiceMessageState ) . isEqualTo ( aPreviewState ( playbackProgress = 0.1f , time = RECORDING _DURATION ) )
}
false -> mostRecentState
}
@ -624,11 +627,13 @@ class VoiceMessageComposerPresenterTest {
@@ -624,11 +627,13 @@ class VoiceMessageComposerPresenterTest {
isPlaying : Boolean = false ,
playbackProgress : Float = 0f ,
isSending : Boolean = false ,
time : Duration = 0. seconds ,
waveform : List < Float > = voiceRecorder . waveform ,
) = VoiceMessageState . Preview (
isPlaying = isPlaying ,
playbackProgress = playbackProgress ,
isSending = isSending ,
time = time ,
waveform = waveform . toImmutableList ( ) ,
)
}