Avoid tryEmit(), use emit()

This commit is contained in:
Benoit Marty 2024-03-26 15:29:12 +01:00 committed by Benoit Marty
parent e9308400bd
commit df0d790493
11 changed files with 21 additions and 19 deletions

View file

@ -48,30 +48,30 @@ class FakeNotificationTroubleshootTest(
} }
} }
override fun reset() { override suspend fun reset() {
updateState( updateState(
name = defaultName, name = defaultName,
description = defaultDescription, description = defaultDescription,
status = firstStatus, status = firstStatus,
) )
resetAction()?.let { resetAction()?.let {
_state.tryEmit(it) _state.emit(it)
} }
} }
override suspend fun quickFix(coroutineScope: CoroutineScope) { override suspend fun quickFix(coroutineScope: CoroutineScope) {
updateState(NotificationTroubleshootTestState.Status.InProgress) updateState(NotificationTroubleshootTestState.Status.InProgress)
quickFixAction()?.let { quickFixAction()?.let {
_state.tryEmit(it) _state.emit(it)
} }
} }
fun updateState( suspend fun updateState(
status: NotificationTroubleshootTestState.Status, status: NotificationTroubleshootTestState.Status,
name: String = defaultName, name: String = defaultName,
description: String = defaultDescription, description: String = defaultDescription,
) { ) {
_state.tryEmit( _state.emit(
NotificationTroubleshootTestState( NotificationTroubleshootTestState(
name = name, name = name,
description = description, description = description,

View file

@ -24,6 +24,8 @@ interface NotificationTroubleshootTest {
val state: StateFlow<NotificationTroubleshootTestState> val state: StateFlow<NotificationTroubleshootTestState>
fun isRelevant(data: TestFilterData): Boolean = true fun isRelevant(data: TestFilterData): Boolean = true
suspend fun run(coroutineScope: CoroutineScope) suspend fun run(coroutineScope: CoroutineScope)
fun reset() suspend fun reset()
suspend fun quickFix(coroutineScope: CoroutineScope) {} suspend fun quickFix(coroutineScope: CoroutineScope) {
error("Quick fix not implemented, you need to override this method in your test")
}
} }

View file

@ -41,12 +41,12 @@ class NotificationTroubleshootTestDelegate(
val state: StateFlow<NotificationTroubleshootTestState> = _state.asStateFlow() val state: StateFlow<NotificationTroubleshootTestState> = _state.asStateFlow()
fun updateState( suspend fun updateState(
status: NotificationTroubleshootTestState.Status, status: NotificationTroubleshootTestState.Status,
name: String = defaultName, name: String = defaultName,
description: String = defaultDescription, description: String = defaultDescription,
) { ) {
_state.tryEmit( _state.emit(
NotificationTroubleshootTestState( NotificationTroubleshootTestState(
name = name, name = name,
description = description, description = description,
@ -55,7 +55,7 @@ class NotificationTroubleshootTestDelegate(
) )
} }
fun reset() { suspend fun reset() {
updateState(NotificationTroubleshootTestState.Status.Idle(visibleWhenIdle)) updateState(NotificationTroubleshootTestState.Status.Idle(visibleWhenIdle))
} }
@ -64,7 +64,7 @@ class NotificationTroubleshootTestDelegate(
delay(fakeDelay) delay(fakeDelay)
} }
fun done(isSuccess: Boolean = true) { suspend fun done(isSuccess: Boolean = true) {
updateState( updateState(
if (isSuccess) { if (isSuccess) {
NotificationTroubleshootTestState.Status.Success NotificationTroubleshootTestState.Status.Success

View file

@ -57,7 +57,7 @@ class NotificationTroubleshootCheckPermissionTest @Inject constructor(
delegate.done(result) delegate.done(result)
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
override suspend fun quickFix(coroutineScope: CoroutineScope) { override suspend fun quickFix(coroutineScope: CoroutineScope) {
// Do not bother about asking the permission inline, just lead the user to the settings // Do not bother about asking the permission inline, just lead the user to the settings

View file

@ -54,5 +54,5 @@ class CurrentPushProviderTest @Inject constructor(
} }
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
} }

View file

@ -90,5 +90,5 @@ class NotificationTest @Inject constructor(
notificationDisplayer.dismissDiagnosticNotification() notificationDisplayer.dismissDiagnosticNotification()
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
} }

View file

@ -98,5 +98,5 @@ class PushLoopbackTest @Inject constructor(
} }
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
} }

View file

@ -55,5 +55,5 @@ class PushProvidersTest @Inject constructor(
} }
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
} }

View file

@ -61,5 +61,5 @@ class FirebaseAvailabilityTest @Inject constructor(
} }
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
} }

View file

@ -63,7 +63,7 @@ class FirebaseTokenTest @Inject constructor(
} }
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
override suspend fun quickFix(coroutineScope: CoroutineScope) { override suspend fun quickFix(coroutineScope: CoroutineScope) {
delegate.start() delegate.start()

View file

@ -62,7 +62,7 @@ class UnifiedPushTest @Inject constructor(
} }
} }
override fun reset() = delegate.reset() override suspend fun reset() = delegate.reset()
override suspend fun quickFix(coroutineScope: CoroutineScope) { override suspend fun quickFix(coroutineScope: CoroutineScope) {
openDistributorWebPageAction.execute() openDistributorWebPageAction.execute()