From 227120bc1121845237dea740a76d2723f18dd04a Mon Sep 17 00:00:00 2001 From: KremeCN <3265494849@qq.com> Date: Mon, 24 Aug 2026 15:57:42 +0800 Subject: [PATCH] refactor: remove compatible provider type --- .../session/RemovedProviderProfileTest.kt | 32 +++++++++++++++++++ .../flagship/abox/manager/domain/Models.kt | 1 - 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 android/core/session/src/test/kotlin/com/flagship/abox/manager/session/RemovedProviderProfileTest.kt diff --git a/android/core/session/src/test/kotlin/com/flagship/abox/manager/session/RemovedProviderProfileTest.kt b/android/core/session/src/test/kotlin/com/flagship/abox/manager/session/RemovedProviderProfileTest.kt new file mode 100644 index 0000000..b861242 --- /dev/null +++ b/android/core/session/src/test/kotlin/com/flagship/abox/manager/session/RemovedProviderProfileTest.kt @@ -0,0 +1,32 @@ +package com.flagship.abox.manager.session + +import androidx.datastore.preferences.core.PreferenceDataStoreFactory +import androidx.datastore.preferences.core.edit +import androidx.datastore.preferences.core.stringPreferencesKey +import androidx.datastore.preferences.core.stringSetPreferencesKey +import com.flagship.abox.manager.session.profile.ProviderProfileStoreImpl +import java.io.File +import kotlinx.coroutines.flow.first +import kotlinx.coroutines.test.runTest +import org.junit.Assert.assertNull +import org.junit.Assert.assertTrue +import org.junit.Test + +class RemovedProviderProfileTest { + @Test + fun removedCompatibleProfileIsIgnoredAndCannotRemainActive() = runTest { + val file = File.createTempFile("removed-provider", ".preferences_pb").apply { delete() } + val dataStore = PreferenceDataStoreFactory.create(scope = backgroundScope) { file } + dataStore.edit { values -> + values[stringSetPreferencesKey("profile_ids")] = setOf("compatible-default") + values[stringPreferencesKey("profile_compatible-default_type")] = "COMPATIBLE_BACKEND" + values[stringPreferencesKey("profile_compatible-default_name")] = "Compatible backend" + values[stringPreferencesKey("active_profile_id")] = "compatible-default" + } + val store = ProviderProfileStoreImpl(dataStore) + + assertTrue(store.profiles().isEmpty()) + assertNull(store.activeProfile()) + assertNull(store.observeActiveProfile().first()) + } +} diff --git a/domain/src/main/kotlin/com/flagship/abox/manager/domain/Models.kt b/domain/src/main/kotlin/com/flagship/abox/manager/domain/Models.kt index d27c801..b1e1cc4 100644 --- a/domain/src/main/kotlin/com/flagship/abox/manager/domain/Models.kt +++ b/domain/src/main/kotlin/com/flagship/abox/manager/domain/Models.kt @@ -25,7 +25,6 @@ value class Password(val value: String) { enum class ProviderType { ABOX, - COMPATIBLE_BACKEND, LOCAL_EXPERIENCE, }