mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-07 21:37:02 +09:00
DROID-3656 Membership | Support new tiers (#2426)
This commit is contained in:
parent
6ff5b57790
commit
d2219e9a96
24 changed files with 222 additions and 89 deletions
|
@ -7,7 +7,9 @@ sealed class UserProperty {
|
|||
val tier: String
|
||||
get() = when (tierId) {
|
||||
0 -> "None"
|
||||
1 -> "Explorer"
|
||||
20 -> "Explorer"
|
||||
21 -> "Starter"
|
||||
22 -> "Pioneer"
|
||||
4 -> "Builder"
|
||||
5 -> "Co-Creator"
|
||||
else -> "Custom"
|
||||
|
|
|
@ -20,7 +20,9 @@ fun TierId.isPossibleToUpgrade(
|
|||
fun TierId.isPossibleToUpgradeNumberOfSpaceMembers(): Boolean {
|
||||
return when (this.value) {
|
||||
MembershipConstants.NONE_ID -> true
|
||||
MembershipConstants.EXPLORER_ID -> true
|
||||
MembershipConstants.STARTER_ID -> true
|
||||
MembershipConstants.PIONEER_ID -> true
|
||||
MembershipConstants.NEW_EXPLORER_ID -> true
|
||||
MembershipConstants.BUILDER_ID -> false
|
||||
MembershipConstants.CO_CREATOR_ID -> false
|
||||
MembershipConstants.ANY_TEAM_ID -> false
|
||||
|
@ -31,7 +33,9 @@ fun TierId.isPossibleToUpgradeNumberOfSpaceMembers(): Boolean {
|
|||
fun TierId.isPossibleToUpgradeStorageSpace(): Boolean {
|
||||
return when (this.value) {
|
||||
MembershipConstants.NONE_ID -> true
|
||||
MembershipConstants.EXPLORER_ID -> true
|
||||
MembershipConstants.STARTER_ID -> true
|
||||
MembershipConstants.PIONEER_ID -> true
|
||||
MembershipConstants.NEW_EXPLORER_ID -> true
|
||||
MembershipConstants.BUILDER_ID -> true
|
||||
MembershipConstants.CO_CREATOR_ID -> false
|
||||
MembershipConstants.ANY_TEAM_ID -> false
|
||||
|
|
|
@ -3,7 +3,9 @@ package com.anytypeio.anytype.core_models.membership
|
|||
object MembershipConstants {
|
||||
|
||||
const val NONE_ID = 0
|
||||
const val EXPLORER_ID = 1
|
||||
const val STARTER_ID = 21
|
||||
const val PIONEER_ID = 22
|
||||
const val NEW_EXPLORER_ID = 20
|
||||
const val BUILDER_ID = 4
|
||||
const val CO_CREATOR_ID = 5
|
||||
const val ANY_TEAM_ID = 7
|
||||
|
@ -13,7 +15,7 @@ object MembershipConstants {
|
|||
const val TERMS_OF_SERVICE = "https://anytype.io/terms_of_use"
|
||||
const val MEMBERSHIP_CONTACT_EMAIL = "membership-upgrade@anytype.io"
|
||||
|
||||
val ACTIVE_TIERS_WITH_BANNERS = listOf(NONE_ID, EXPLORER_ID)
|
||||
val ACTIVE_TIERS_WITH_BANNERS = listOf(NONE_ID, STARTER_ID, PIONEER_ID)
|
||||
|
||||
const val ERROR_PRODUCT_NOT_FOUND = "Product not found"
|
||||
const val ERROR_PRODUCT_PRICE = "Price of the product is not available"
|
||||
|
|
46
core-ui/src/main/res/drawable/logo_new_explorer_64.xml
Normal file
46
core-ui/src/main/res/drawable/logo_new_explorer_64.xml
Normal file
|
@ -0,0 +1,46 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="64dp"
|
||||
android:height="64dp"
|
||||
android:viewportWidth="64"
|
||||
android:viewportHeight="64">
|
||||
<path
|
||||
android:pathData="M23.5,23.5m0,-23.5a23.5,23.5 0,1 0,0 47a23.5,23.5 0,1 0,0 -47">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="23.5"
|
||||
android:centerY="23.5"
|
||||
android:gradientRadius="23.5"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="@color/tier_gradient_ice_start"/>
|
||||
<item android:offset="1" android:color="@color/tier_gradient_ice_end"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M50,50m0,-14a14,14 0,1 0,0 28a14,14 0,1 0,0 -28">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="50"
|
||||
android:centerY="50"
|
||||
android:gradientRadius="14"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="@color/tier_gradient_ice_start"/>
|
||||
<item android:offset="1" android:color="@color/tier_gradient_ice_end"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M37,37m0,-19a19,19 0,1 0,0 38a19,19 0,1 0,0 -38">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="37"
|
||||
android:centerY="37"
|
||||
android:gradientRadius="19"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="@color/tier_gradient_ice_start"/>
|
||||
<item android:offset="1" android:color="@color/tier_gradient_ice_end"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
46
core-ui/src/main/res/drawable/logo_new_explorer_96.xml
Normal file
46
core-ui/src/main/res/drawable/logo_new_explorer_96.xml
Normal file
|
@ -0,0 +1,46 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:aapt="http://schemas.android.com/aapt"
|
||||
android:width="97dp"
|
||||
android:height="97dp"
|
||||
android:viewportWidth="97"
|
||||
android:viewportHeight="97">
|
||||
<path
|
||||
android:pathData="M35.95,36.142m0,-35.25a35.25,35.25 0,1 0,0 70.5a35.25,35.25 0,1 0,0 -70.5">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="35.95"
|
||||
android:centerY="36.142"
|
||||
android:gradientRadius="35.25"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="@color/tier_gradient_ice_start"/>
|
||||
<item android:offset="1" android:color="@color/tier_gradient_ice_end"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M75.7,75.892m0,-21a21,21 0,1 0,0 42a21,21 0,1 0,0 -42">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="75.7"
|
||||
android:centerY="75.892"
|
||||
android:gradientRadius="21"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="@color/tier_gradient_ice_start"/>
|
||||
<item android:offset="1" android:color="@color/tier_gradient_ice_end"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
<path
|
||||
android:pathData="M56.2,56.392m0,-28.5a28.5,28.5 0,1 0,0 57a28.5,28.5 0,1 0,0 -57">
|
||||
<aapt:attr name="android:fillColor">
|
||||
<gradient
|
||||
android:centerX="56.2"
|
||||
android:centerY="56.392"
|
||||
android:gradientRadius="28.5"
|
||||
android:type="radial">
|
||||
<item android:offset="0.41" android:color="@color/tier_gradient_ice_start"/>
|
||||
<item android:offset="1" android:color="@color/tier_gradient_ice_end"/>
|
||||
</gradient>
|
||||
</aapt:attr>
|
||||
</path>
|
||||
</vector>
|
|
@ -129,6 +129,9 @@
|
|||
<color name="tier_gradient_purple_start">#00000000</color>
|
||||
<color name="tier_gradient_purple_end">#E86DE3</color>
|
||||
|
||||
<color name="tier_gradient_ice_start">#00000000</color>
|
||||
<color name="tier_gradient_ice_end">#FF91D3FF</color>
|
||||
|
||||
<color name="object_number_background">#393835</color>
|
||||
|
||||
<color name="home_screen_toolbar_button">#F2222222</color>
|
||||
|
|
|
@ -173,6 +173,9 @@
|
|||
<color name="tier_gradient_purple_start">#FBEAFF</color>
|
||||
<color name="tier_gradient_purple_end">#E86DE3</color>
|
||||
|
||||
<color name="tier_gradient_ice_start">#1A0091D3</color>
|
||||
<color name="tier_gradient_ice_end">#FF91D3FF</color>
|
||||
|
||||
<color name="membership_info_gradient_green">#CFF6CF</color>
|
||||
<color name="membership_info_gradient_yellow">#FEF2C6</color>
|
||||
<color name="membership_info_gradient_pink">#FFEBEB</color>
|
||||
|
|
|
@ -184,10 +184,10 @@ private fun MembershipTierData.mapActiveTierButtonAndNameStates(
|
|||
val wasPurchasedOnAndroid = isActiveTierPurchasedOnAndroid(paymentMethod)
|
||||
if (!wasPurchasedOnAndroid) {
|
||||
return when {
|
||||
id == MembershipConstants.EXPLORER_ID && userEmail.isBlank() -> {
|
||||
id == MembershipConstants.STARTER_ID && userEmail.isBlank() -> {
|
||||
TierButton.Submit.Enabled to TierAnyName.Hidden
|
||||
}
|
||||
id == MembershipConstants.EXPLORER_ID -> {
|
||||
id == MembershipConstants.STARTER_ID -> {
|
||||
TierButton.ChangeEmail to TierAnyName.Hidden
|
||||
}
|
||||
paymentMethod == METHOD_NONE -> {
|
||||
|
@ -448,7 +448,7 @@ private fun convertToTierViewPeriod(tier: MembershipTierData): TierPeriod {
|
|||
|
||||
private fun MembershipTierData.getTierEmail(isActive: Boolean, membershipEmail: String): TierEmail {
|
||||
if (isActive) {
|
||||
if (id == MembershipConstants.EXPLORER_ID && membershipEmail.isBlank()) {
|
||||
if (id == MembershipConstants.STARTER_ID && membershipEmail.isBlank()) {
|
||||
return TierEmail.Visible.Enter
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,9 @@ import com.anytypeio.anytype.core_ui.views.Relations3
|
|||
import com.anytypeio.anytype.core_ui.views.fontInterSemibold
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.BUILDER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.CO_CREATOR_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.EXPLORER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.NEW_EXPLORER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.PIONEER_ID
|
||||
import com.anytypeio.anytype.payments.models.TierPreview
|
||||
import com.anytypeio.anytype.payments.models.Tier
|
||||
import com.anytypeio.anytype.payments.models.TierConditionInfo
|
||||
|
@ -157,12 +159,24 @@ fun mapTierToResources(tier: Tier): TierResources {
|
|||
colors = toValue(tier.color),
|
||||
features = tier.features,
|
||||
)
|
||||
EXPLORER_ID -> TierResources(
|
||||
STARTER_ID -> TierResources(
|
||||
mediumIcon = R.drawable.logo_explorer_96,
|
||||
smallIcon = R.drawable.logo_explorer_64,
|
||||
colors = toValue(tier.color),
|
||||
features = tier.features,
|
||||
)
|
||||
PIONEER_ID -> TierResources(
|
||||
mediumIcon = R.drawable.logo_custom_64,
|
||||
smallIcon = R.drawable.logo_custom_64,
|
||||
colors = toValue(tier.color),
|
||||
features = tier.features,
|
||||
)
|
||||
NEW_EXPLORER_ID -> TierResources(
|
||||
mediumIcon = R.drawable.logo_new_explorer_96,
|
||||
smallIcon = R.drawable.logo_new_explorer_64,
|
||||
colors = toValue(tier.color),
|
||||
features = tier.features,
|
||||
)
|
||||
else -> TierResources(
|
||||
smallIcon = R.drawable.logo_custom_64,
|
||||
mediumIcon = R.drawable.logo_custom_64,
|
||||
|
@ -186,11 +200,21 @@ fun mapTierPreviewToResources(tier: TierPreview): TierResources {
|
|||
smallIcon = R.drawable.logo_co_creator_64,
|
||||
colors = toValue(tier.color)
|
||||
)
|
||||
EXPLORER_ID -> TierResources(
|
||||
STARTER_ID -> TierResources(
|
||||
mediumIcon = R.drawable.logo_explorer_96,
|
||||
smallIcon = R.drawable.logo_explorer_64,
|
||||
colors = toValue(tier.color)
|
||||
)
|
||||
PIONEER_ID -> TierResources(
|
||||
mediumIcon = R.drawable.logo_custom_64,
|
||||
smallIcon = R.drawable.logo_custom_64,
|
||||
colors = toValue(tier.color)
|
||||
)
|
||||
NEW_EXPLORER_ID -> TierResources(
|
||||
mediumIcon = R.drawable.logo_new_explorer_96,
|
||||
smallIcon = R.drawable.logo_new_explorer_64,
|
||||
colors = toValue(tier.color)
|
||||
)
|
||||
else -> TierResources(
|
||||
smallIcon = R.drawable.logo_custom_64,
|
||||
mediumIcon = R.drawable.logo_custom_64,
|
||||
|
@ -213,6 +237,7 @@ fun String.gradientStart(): Color = when (this) {
|
|||
CoverColor.BLUE.code -> colorResource(id = R.color.tier_gradient_blue_start)
|
||||
CoverColor.GREEN.code -> colorResource(id = R.color.tier_gradient_teal_start)
|
||||
CoverColor.PURPLE.code -> colorResource(id = R.color.tier_gradient_purple_start)
|
||||
CoverColor.ICE.code -> colorResource(id = R.color.tier_gradient_ice_start)
|
||||
else -> colorResource(id = R.color.tier_gradient_blue_start)
|
||||
}
|
||||
|
||||
|
@ -222,6 +247,7 @@ private fun String.gradientEnd(): Color = when (this) {
|
|||
CoverColor.BLUE.code -> colorResource(id = R.color.tier_gradient_blue_end)
|
||||
CoverColor.GREEN.code -> colorResource(id = R.color.tier_gradient_teal_end)
|
||||
CoverColor.PURPLE.code -> colorResource(id = R.color.tier_gradient_purple_end)
|
||||
CoverColor.ICE.code -> colorResource(id = R.color.tier_gradient_ice_end)
|
||||
else -> colorResource(id = R.color.tier_gradient_blue_end)
|
||||
}
|
||||
|
||||
|
@ -252,11 +278,12 @@ data class TierColors(
|
|||
fun TierPreviewViewPreview() {
|
||||
TierPreviewView(
|
||||
tier = TierPreview(
|
||||
id = TierId(BUILDER_ID),
|
||||
title = "Builder",
|
||||
id = TierId(NEW_EXPLORER_ID),
|
||||
title = "Explorer",
|
||||
subtitle = "For those who want to build and create",
|
||||
conditionInfo = TierConditionInfo.Visible.Price("99.99", TierPeriod.Year(1)),
|
||||
isActive = true
|
||||
isActive = true,
|
||||
color = "ice"
|
||||
)
|
||||
) {}
|
||||
}
|
|
@ -36,7 +36,7 @@ import androidx.compose.ui.text.style.TextAlign
|
|||
import androidx.compose.ui.text.withStyle
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.EXPLORER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.PRIVACY_POLICY
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.TERMS_OF_SERVICE
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipPaymentMethod
|
||||
|
@ -466,7 +466,7 @@ fun TierViewScreenPreview() {
|
|||
payedBy = MembershipPaymentMethod.METHOD_INAPP_GOOGLE
|
||||
),
|
||||
buttonState = TierButton.HiddenWithText.ManageOnIOS,
|
||||
id = TierId(value = EXPLORER_ID),
|
||||
id = TierId(value = STARTER_ID),
|
||||
membershipAnyName = TierAnyName.Visible.Purchased("someanyname111"),
|
||||
email = TierEmail.Visible.Enter,
|
||||
color = "teal",
|
||||
|
|
|
@ -11,7 +11,7 @@ import com.android.billingclient.api.ProductDetails
|
|||
import com.anytypeio.anytype.analytics.base.Analytics
|
||||
import com.anytypeio.anytype.analytics.base.EventsDictionary
|
||||
import com.anytypeio.anytype.core_models.membership.EmailVerificationStatus
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.EXPLORER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.MEMBERSHIP_NAME_MIN_LENGTH
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.NONE_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipErrors
|
||||
|
@ -458,7 +458,7 @@ class MembershipViewModel(
|
|||
(tierState.value as? MembershipTierState.Visible)?.tier ?: return@fold
|
||||
when (status) {
|
||||
EmailVerificationStatus.STATUS_VERIFIED -> {
|
||||
if (tierView.id.value == EXPLORER_ID) {
|
||||
if (tierView.id.value == STARTER_ID) {
|
||||
anyEmailState.clearText()
|
||||
val updatedState = tierView.copy(
|
||||
email = TierEmail.Hidden,
|
||||
|
|
|
@ -38,7 +38,7 @@ class CocreatorActiveTest : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
|
|
@ -90,7 +90,7 @@ open class MembershipTestsSetup {
|
|||
protected val accountId = "accountId-${RandomString.make()}"
|
||||
|
||||
fun membershipStatus(tiers: List<MembershipTierData>) = MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 1714199910,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
|
|
@ -6,7 +6,7 @@ import com.anytypeio.anytype.core_models.membership.MembershipPaymentMethod
|
|||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.ACTIVE_TIERS_WITH_BANNERS
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.BUILDER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.CO_CREATOR_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.EXPLORER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
|
||||
import com.anytypeio.anytype.payments.viewmodel.MembershipMainState
|
||||
import com.anytypeio.anytype.payments.viewmodel.MembershipTierState
|
||||
import com.anytypeio.anytype.payments.viewmodel.MembershipEmailCodeState
|
||||
|
@ -27,7 +27,7 @@ class MembershipViewModelTest : MembershipTestsSetup() {
|
|||
|
||||
private val mTiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = EXPLORER_ID,
|
||||
id = STARTER_ID,
|
||||
),
|
||||
StubMembershipTierData(
|
||||
id = BUILDER_ID,
|
||||
|
@ -92,7 +92,7 @@ class MembershipViewModelTest : MembershipTestsSetup() {
|
|||
membershipStatus(
|
||||
listOf(
|
||||
StubMembershipTierData(
|
||||
id = EXPLORER_ID,
|
||||
id = STARTER_ID,
|
||||
),
|
||||
StubMembershipTierData(
|
||||
id = BUILDER_ID,
|
||||
|
|
|
@ -39,7 +39,7 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
@ -53,7 +53,7 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
email: String
|
||||
): MembershipStatus {
|
||||
return MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 0,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
@ -83,8 +83,8 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
viewStateFlow.awaitItem().let { result ->
|
||||
assertIs<MembershipMainState.Default>(result)
|
||||
val tier: TierPreview =
|
||||
result.tiersPreview.find { it.id.value == MembershipConstants.EXPLORER_ID }!!
|
||||
TestCase.assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
result.tiersPreview.find { it.id.value == MembershipConstants.STARTER_ID }!!
|
||||
TestCase.assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
TestCase.assertEquals(true, tier.isActive)
|
||||
TestCase.assertEquals(
|
||||
TierConditionInfo.Visible.Valid(
|
||||
|
@ -96,7 +96,7 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
)
|
||||
}
|
||||
|
||||
viewModel.onTierClicked(TierId(MembershipConstants.EXPLORER_ID))
|
||||
viewModel.onTierClicked(TierId(MembershipConstants.STARTER_ID))
|
||||
|
||||
//STATE : EXPLORER, CURRENT, WITHOUT EMAIL
|
||||
tierStateFlow.awaitItem().let { result ->
|
||||
|
@ -111,7 +111,7 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
),
|
||||
expectedAnyName = TierAnyName.Hidden,
|
||||
expectedButtonState = TierButton.Submit.Enabled,
|
||||
expectedId = MembershipConstants.EXPLORER_ID,
|
||||
expectedId = MembershipConstants.STARTER_ID,
|
||||
expectedActive = true,
|
||||
expectedEmailState = TierEmail.Visible.Enter
|
||||
)
|
||||
|
@ -138,8 +138,8 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
viewStateFlow.awaitItem().let { result ->
|
||||
assertIs<MembershipMainState.Default>(result)
|
||||
val tier: TierPreview =
|
||||
result.tiersPreview.find { it.id.value == MembershipConstants.EXPLORER_ID }!!
|
||||
TestCase.assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
result.tiersPreview.find { it.id.value == MembershipConstants.STARTER_ID }!!
|
||||
TestCase.assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
TestCase.assertEquals(true, tier.isActive)
|
||||
TestCase.assertEquals(
|
||||
TierConditionInfo.Visible.Valid(
|
||||
|
@ -151,7 +151,7 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
)
|
||||
}
|
||||
|
||||
viewModel.onTierClicked(TierId(MembershipConstants.EXPLORER_ID))
|
||||
viewModel.onTierClicked(TierId(MembershipConstants.STARTER_ID))
|
||||
|
||||
//STATE : EXPLORER, CURRENT, WITHOUT EMAIL
|
||||
tierStateFlow.awaitItem().let { result ->
|
||||
|
@ -166,7 +166,7 @@ class TierActiveAndFreeTests : MembershipTestsSetup() {
|
|||
),
|
||||
expectedAnyName = TierAnyName.Hidden,
|
||||
expectedButtonState = TierButton.ChangeEmail,
|
||||
expectedId = MembershipConstants.EXPLORER_ID,
|
||||
expectedId = MembershipConstants.STARTER_ID,
|
||||
expectedActive = true,
|
||||
expectedEmailState = TierEmail.Hidden
|
||||
)
|
||||
|
|
|
@ -44,7 +44,7 @@ class TierActivePurchasedOniOSTests : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
|
|
@ -49,7 +49,7 @@ class TierActiveWithDifferentSubIdTest : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
@ -105,7 +105,7 @@ class TierActiveWithDifferentSubIdTest : MembershipTestsSetup() {
|
|||
val flow = flow {
|
||||
emit(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 0L,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
@ -225,7 +225,7 @@ class TierActiveWithDifferentSubIdTest : MembershipTestsSetup() {
|
|||
val flow = flow {
|
||||
emit(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 0L,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
@ -313,7 +313,7 @@ class TierActiveWithDifferentSubIdTest : MembershipTestsSetup() {
|
|||
val flow = flow {
|
||||
emit(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 0L,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
@ -428,7 +428,7 @@ class TierActiveWithDifferentSubIdTest : MembershipTestsSetup() {
|
|||
val flow = flow {
|
||||
emit(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 0L,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
|
|
@ -45,7 +45,7 @@ class TierAndroidActivePurchasedOniOS : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
|
|
@ -42,7 +42,7 @@ class TierAndroidActiveTests : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
|
|
@ -36,7 +36,7 @@ class TierAndroidBillingUnavailableTest : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
@ -64,7 +64,7 @@ class TierAndroidBillingUnavailableTest : MembershipTestsSetup() {
|
|||
|
||||
private fun setupMembershipStatus(tiers: List<MembershipTierData>): MembershipStatus {
|
||||
return MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 0,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
|
|
@ -46,7 +46,7 @@ class TierAndroidNotActiveTests : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
@ -85,7 +85,7 @@ class TierAndroidNotActiveTests : MembershipTestsSetup() {
|
|||
status : Membership.Status = Membership.Status.STATUS_ACTIVE
|
||||
): MembershipStatus {
|
||||
return MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = status,
|
||||
dateEnds = 1714199910,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
|
|
@ -7,7 +7,7 @@ import com.anytypeio.anytype.core_models.membership.MembershipPaymentMethod
|
|||
import com.anytypeio.anytype.core_models.membership.MembershipPeriodType
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipTierData
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.BUILDER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.EXPLORER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
|
||||
import com.anytypeio.anytype.payments.models.BillingPriceInfo
|
||||
import com.anytypeio.anytype.payments.models.MembershipPurchase
|
||||
import com.anytypeio.anytype.payments.models.PeriodDescription
|
||||
|
@ -47,7 +47,7 @@ class TierBuilderFallbackOnExplorerTest : MembershipTestsSetup() {
|
|||
private fun setupTierData(features: List<String>): List<MembershipTierData> {
|
||||
return listOf(
|
||||
StubMembershipTierData(
|
||||
id = EXPLORER_ID,
|
||||
id = STARTER_ID,
|
||||
androidProductId = null,
|
||||
features = features,
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
|
@ -102,7 +102,7 @@ class TierBuilderFallbackOnExplorerTest : MembershipTestsSetup() {
|
|||
delay(300)
|
||||
emit(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(EXPLORER_ID),
|
||||
activeTier = TierId(STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 0L,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_NONE,
|
||||
|
@ -136,7 +136,7 @@ class TierBuilderFallbackOnExplorerTest : MembershipTestsSetup() {
|
|||
secondMainItem.let {
|
||||
assertIs<MembershipMainState.Default>(secondMainItem)
|
||||
val builderTier2 = secondMainItem.tiers.find { it.id == TierId(BUILDER_ID) }
|
||||
val explorerTier2 = secondMainItem.tiers.find { it.id == TierId(EXPLORER_ID) }
|
||||
val explorerTier2 = secondMainItem.tiers.find { it.id == TierId(STARTER_ID) }
|
||||
assertEquals(true, builderTier2?.isActive)
|
||||
assertEquals(false, explorerTier2?.isActive)
|
||||
}
|
||||
|
@ -145,7 +145,7 @@ class TierBuilderFallbackOnExplorerTest : MembershipTestsSetup() {
|
|||
thirdMainItem.let {
|
||||
assertIs<MembershipMainState.Default>(thirdMainItem)
|
||||
val builderTier3 = thirdMainItem.tiers.find { it.id == TierId(BUILDER_ID) }
|
||||
val explorerTier3 = thirdMainItem.tiers.find { it.id == TierId(EXPLORER_ID) }
|
||||
val explorerTier3 = thirdMainItem.tiers.find { it.id == TierId(STARTER_ID) }
|
||||
assertEquals(false, builderTier3?.isActive)
|
||||
assertEquals(true, explorerTier3?.isActive)
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
priceStripeUsdCents = 0,
|
||||
|
@ -54,7 +54,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(
|
||||
period = TierPeriod.Unlimited
|
||||
|
@ -68,7 +68,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNKNOWN,
|
||||
priceStripeUsdCents = 0,
|
||||
|
@ -98,7 +98,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(
|
||||
period = TierPeriod.Unknown
|
||||
|
@ -112,7 +112,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_YEARS,
|
||||
priceStripeUsdCents = 0,
|
||||
|
@ -142,7 +142,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(
|
||||
period = TierPeriod.Year(3)
|
||||
|
@ -156,7 +156,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
priceStripeUsdCents = 9999,
|
||||
|
@ -186,7 +186,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Price(
|
||||
price = "$99.99",
|
||||
|
@ -201,7 +201,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNKNOWN,
|
||||
priceStripeUsdCents = 9999,
|
||||
|
@ -231,7 +231,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Price(
|
||||
price = "$99.99",
|
||||
|
@ -246,7 +246,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_YEARS,
|
||||
priceStripeUsdCents = 9999,
|
||||
|
@ -276,7 +276,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Price(
|
||||
price = "$99.99",
|
||||
|
@ -291,7 +291,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNLIMITED,
|
||||
priceStripeUsdCents = 0,
|
||||
|
@ -300,7 +300,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
)
|
||||
stubMembershipProvider(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 1714199910,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_CRYPTO,
|
||||
|
@ -321,7 +321,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Valid(
|
||||
period = TierPeriod.Unlimited,
|
||||
|
@ -337,7 +337,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_UNKNOWN,
|
||||
priceStripeUsdCents = 0,
|
||||
|
@ -346,7 +346,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
)
|
||||
stubMembershipProvider(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 1714199910,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_CRYPTO,
|
||||
|
@ -367,7 +367,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Valid(
|
||||
period = TierPeriod.Unknown,
|
||||
|
@ -383,7 +383,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
periodType = MembershipPeriodType.PERIOD_TYPE_YEARS,
|
||||
priceStripeUsdCents = 0,
|
||||
|
@ -392,7 +392,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
)
|
||||
stubMembershipProvider(
|
||||
MembershipStatus(
|
||||
activeTier = TierId(MembershipConstants.EXPLORER_ID),
|
||||
activeTier = TierId(MembershipConstants.STARTER_ID),
|
||||
status = Membership.Status.STATUS_ACTIVE,
|
||||
dateEnds = 1714199910,
|
||||
paymentMethod = MembershipPaymentMethod.METHOD_CRYPTO,
|
||||
|
@ -413,7 +413,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Valid(
|
||||
period = TierPeriod.Year(2),
|
||||
|
@ -475,7 +475,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -507,7 +507,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(
|
||||
period = TierPeriod.Year(4)
|
||||
|
@ -521,7 +521,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -553,7 +553,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(
|
||||
period = TierPeriod.Month(3)
|
||||
|
@ -567,7 +567,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -599,7 +599,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(false, tier.isActive)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(
|
||||
|
@ -614,7 +614,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -646,7 +646,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(false, tier.isActive)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(
|
||||
|
@ -661,7 +661,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -693,7 +693,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(false, tier.isActive)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(period = TierPeriod.Unknown),
|
||||
|
@ -710,7 +710,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -742,7 +742,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(false, tier.isActive)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Free(period = TierPeriod.Unknown),
|
||||
|
@ -756,7 +756,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -788,7 +788,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(false, tier.isActive)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Price(
|
||||
|
@ -804,7 +804,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
turbineScope {
|
||||
val tiers = listOf(
|
||||
StubMembershipTierData(
|
||||
id = MembershipConstants.EXPLORER_ID,
|
||||
id = MembershipConstants.STARTER_ID,
|
||||
name = "Explorer",
|
||||
colorStr = "#000000",
|
||||
features = listOf("feature1", "feature2"),
|
||||
|
@ -836,7 +836,7 @@ class TierConditionInfoTests : MembershipTestsSetup() {
|
|||
val tier = result.tiersPreview[0]
|
||||
|
||||
//Asserts
|
||||
assertEquals(MembershipConstants.EXPLORER_ID, tier.id.value)
|
||||
assertEquals(MembershipConstants.STARTER_ID, tier.id.value)
|
||||
assertEquals(false, tier.isActive)
|
||||
assertEquals(
|
||||
TierConditionInfo.Visible.Price(
|
||||
|
|
|
@ -13,7 +13,7 @@ import com.anytypeio.anytype.core_models.Id
|
|||
import com.anytypeio.anytype.core_models.ObjectWrapper
|
||||
import com.anytypeio.anytype.core_models.ext.isPossibleToUpgradeNumberOfSpaceMembers
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.BUILDER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.EXPLORER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
|
||||
import com.anytypeio.anytype.core_models.membership.TierId
|
||||
import com.anytypeio.anytype.core_models.multiplayer.MultiplayerError
|
||||
import com.anytypeio.anytype.core_models.multiplayer.SpaceMemberPermissions
|
||||
|
@ -137,7 +137,7 @@ class SpaceJoinRequestViewModel(
|
|||
Timber.d("proceedWithState, tierId: $tierId, spaceView: $spaceView, spaceMembers: $spaceMembers, newMember: $newMember, isCurrentUserOwner: $isCurrentUserOwner")
|
||||
|
||||
val state = when (tierId.value) {
|
||||
EXPLORER_ID -> createExplorerState(
|
||||
STARTER_ID -> createExplorerState(
|
||||
spaceView = spaceView,
|
||||
spaceMembers = spaceMembers,
|
||||
newMember = newMember,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue