Remove dependency on AppNavigationStateService from DefaultUnifiedPushCurrentUserPushConfigProvider

This commit is contained in:
Benoit Marty 2025-10-23 15:23:11 +02:00
parent 705b1b08f2
commit afdfe28ef4
21 changed files with 124 additions and 160 deletions

View file

@ -99,7 +99,7 @@ class DefaultPushService(
override suspend fun testPush(sessionId: SessionId): Boolean {
val pushProvider = getCurrentPushProvider(sessionId) ?: return false
val config = pushProvider.getCurrentUserPushConfig() ?: return false
val config = pushProvider.getPushConfig(sessionId) ?: return false
testPush.execute(config)
return true
}

View file

@ -13,17 +13,17 @@ import io.element.android.appconfig.PushConfig
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.push.impl.pushgateway.PushGatewayNotifyRequest
import io.element.android.libraries.pushproviders.api.CurrentUserPushConfig
import io.element.android.libraries.pushproviders.api.Config
interface TestPush {
suspend fun execute(config: CurrentUserPushConfig)
suspend fun execute(config: Config)
}
@ContributesBinding(AppScope::class)
class DefaultTestPush(
private val pushGatewayNotifyRequest: PushGatewayNotifyRequest,
) : TestPush {
override suspend fun execute(config: CurrentUserPushConfig) {
override suspend fun execute(config: Config) {
pushGatewayNotifyRequest.execute(
PushGatewayNotifyRequest.Params(
url = config.url,

View file

@ -25,11 +25,11 @@ import io.element.android.libraries.push.impl.store.PushDataStore
import io.element.android.libraries.push.impl.test.FakeTestPush
import io.element.android.libraries.push.impl.test.TestPush
import io.element.android.libraries.push.test.FakeGetCurrentPushProvider
import io.element.android.libraries.pushproviders.api.CurrentUserPushConfig
import io.element.android.libraries.pushproviders.api.Config
import io.element.android.libraries.pushproviders.api.Distributor
import io.element.android.libraries.pushproviders.api.PushProvider
import io.element.android.libraries.pushproviders.test.FakePushProvider
import io.element.android.libraries.pushproviders.test.aCurrentUserPushConfig
import io.element.android.libraries.pushproviders.test.aSessionPushConfig
import io.element.android.libraries.pushstore.api.UserPushStoreFactory
import io.element.android.libraries.pushstore.api.clientsecret.PushClientSecretStore
import io.element.android.libraries.pushstore.test.userpushstore.FakeUserPushStore
@ -62,10 +62,10 @@ class DefaultPushServiceTest {
@Test
fun `test push ok`() = runTest {
val aConfig = aCurrentUserPushConfig()
val testPushResult = lambdaRecorder<CurrentUserPushConfig, Unit> { }
val aConfig = aSessionPushConfig()
val testPushResult = lambdaRecorder<Config, Unit> { }
val aPushProvider = FakePushProvider(
currentUserPushConfig = aConfig
config = aConfig
)
val defaultPushService = createDefaultPushService(
pushProviders = setOf(aPushProvider),

View file

@ -9,7 +9,7 @@ package io.element.android.libraries.push.impl.test
import io.element.android.appconfig.PushConfig
import io.element.android.libraries.push.impl.pushgateway.PushGatewayNotifyRequest
import io.element.android.libraries.pushproviders.test.aCurrentUserPushConfig
import io.element.android.libraries.pushproviders.test.aSessionPushConfig
import io.element.android.tests.testutils.lambda.lambdaRecorder
import io.element.android.tests.testutils.lambda.value
import kotlinx.coroutines.test.runTest
@ -24,7 +24,7 @@ class DefaultTestPushTest {
executeResult = executeResult,
)
)
val aConfig = aCurrentUserPushConfig()
val aConfig = aSessionPushConfig()
defaultTestPush.execute(aConfig)
executeResult.assertions()
.isCalledOnce()

View file

@ -7,13 +7,13 @@
package io.element.android.libraries.push.impl.test
import io.element.android.libraries.pushproviders.api.CurrentUserPushConfig
import io.element.android.libraries.pushproviders.api.Config
import io.element.android.tests.testutils.lambda.lambdaError
class FakeTestPush(
private val executeResult: (CurrentUserPushConfig) -> Unit = { lambdaError() }
private val executeResult: (Config) -> Unit = { lambdaError() }
) : TestPush {
override suspend fun execute(config: CurrentUserPushConfig) {
override suspend fun execute(config: Config) {
executeResult(config)
}
}