Skip to content

Commit

Permalink
PAY-1526: Removed feature flag for Local pickup (#1708)
Browse files Browse the repository at this point in the history
  • Loading branch information
Arkariang committed Nov 21, 2022
1 parent 885e92a commit dcfd6fa
Show file tree
Hide file tree
Showing 10 changed files with 14 additions and 246 deletions.
Expand Up @@ -3,7 +3,6 @@ package com.kickstarter.libs.models
class OptimizelyFeature {
enum class Key(val key: String) {
LIGHTS_ON("android_lights_on"),
ANDROID_LOCAL_PICKUP("android_local_pickup"),
ANDROID_PAYMENTSHEET("android_paymentsheet"),
ANDROID_FACEBOOK_LOGIN_REMOVE("android_facebook_login_remove"),
ANDROID_PAYMENTSHEET_SETTINGS("android_paymentsheet_user_settings"),
Expand Down
Expand Up @@ -6,7 +6,6 @@ import com.kickstarter.R
import com.kickstarter.libs.ActivityViewModel
import com.kickstarter.libs.Environment
import com.kickstarter.libs.models.Country
import com.kickstarter.libs.models.OptimizelyFeature
import com.kickstarter.libs.utils.ObjectUtils
import com.kickstarter.libs.utils.RewardUtils
import com.kickstarter.libs.utils.extensions.negate
Expand Down Expand Up @@ -170,9 +169,7 @@ interface AddOnViewHolderViewModel {
reward
.filter { !RewardUtils.isShippable(it) }
.map {
RewardUtils.isLocalPickup(it) && optimizely?.isFeatureEnabled(
OptimizelyFeature.Key.ANDROID_LOCAL_PICKUP
) == true
RewardUtils.isLocalPickup(it)
}
.compose(bindToLifecycle())
.subscribe {
Expand Down
Expand Up @@ -4,7 +4,6 @@ import android.util.Pair
import androidx.annotation.NonNull
import com.kickstarter.libs.ActivityViewModel
import com.kickstarter.libs.Environment
import com.kickstarter.libs.models.OptimizelyFeature
import com.kickstarter.libs.rx.transformers.Transformers.combineLatestPair
import com.kickstarter.libs.utils.ObjectUtils
import com.kickstarter.libs.utils.RewardUtils
Expand Down Expand Up @@ -226,9 +225,7 @@ class BackingAddOnViewHolderViewModel {
addOn
.filter { !RewardUtils.isShippable(it) }
.map {
RewardUtils.isLocalPickup(it) && optimizely?.isFeatureEnabled(
OptimizelyFeature.Key.ANDROID_LOCAL_PICKUP
) == true
RewardUtils.isLocalPickup(it)
}
.compose(bindToLifecycle())
.subscribe {
Expand Down
Expand Up @@ -10,7 +10,6 @@ import com.kickstarter.libs.FragmentViewModel
import com.kickstarter.libs.NumberOptions
import com.kickstarter.libs.models.Country
import com.kickstarter.libs.models.OptimizelyExperiment
import com.kickstarter.libs.models.OptimizelyFeature
import com.kickstarter.libs.rx.transformers.Transformers.combineLatestPair
import com.kickstarter.libs.rx.transformers.Transformers.errors
import com.kickstarter.libs.rx.transformers.Transformers.ignoreValues
Expand Down Expand Up @@ -634,9 +633,7 @@ interface PledgeFragmentLegacyViewModel {
this.selectedReward
.filter { !RewardUtils.isShippable(it) }
.map {
RewardUtils.isLocalPickup(it) && optimizely?.isFeatureEnabled(
OptimizelyFeature.Key.ANDROID_LOCAL_PICKUP
) == true
RewardUtils.isLocalPickup(it)
}
.compose(bindToLifecycle())
.subscribe {
Expand Down
Expand Up @@ -10,7 +10,6 @@ import com.kickstarter.libs.FragmentViewModel
import com.kickstarter.libs.NumberOptions
import com.kickstarter.libs.models.Country
import com.kickstarter.libs.models.OptimizelyExperiment
import com.kickstarter.libs.models.OptimizelyFeature
import com.kickstarter.libs.rx.transformers.Transformers.combineLatestPair
import com.kickstarter.libs.rx.transformers.Transformers.errors
import com.kickstarter.libs.rx.transformers.Transformers.ignoreValues
Expand Down Expand Up @@ -649,9 +648,7 @@ interface PledgeFragmentViewModel {
this.selectedReward
.filter { !RewardUtils.isShippable(it) }
.map {
RewardUtils.isLocalPickup(it) && optimizely?.isFeatureEnabled(
OptimizelyFeature.Key.ANDROID_LOCAL_PICKUP
) == true
RewardUtils.isLocalPickup(it)
}
.compose(bindToLifecycle())
.subscribe {
Expand Down
Expand Up @@ -6,7 +6,6 @@ import androidx.annotation.NonNull
import com.kickstarter.R
import com.kickstarter.libs.ActivityViewModel
import com.kickstarter.libs.Environment
import com.kickstarter.libs.models.OptimizelyFeature
import com.kickstarter.libs.rx.transformers.Transformers.combineLatestPair
import com.kickstarter.libs.rx.transformers.Transformers.takeWhen
import com.kickstarter.libs.utils.DateTimeUtils
Expand Down Expand Up @@ -372,9 +371,7 @@ interface RewardViewHolderViewModel {
reward
.filter { !RewardUtils.isShippable(it) }
.map {
RewardUtils.isLocalPickup(it) && optimizely?.isFeatureEnabled(
OptimizelyFeature.Key.ANDROID_LOCAL_PICKUP
) == true
RewardUtils.isLocalPickup(it)
}
.compose(bindToLifecycle())
.subscribe {
Expand Down
Expand Up @@ -5,8 +5,6 @@ import androidx.annotation.NonNull
import com.kickstarter.KSRobolectricTestCase
import com.kickstarter.R
import com.kickstarter.libs.Environment
import com.kickstarter.libs.models.OptimizelyFeature
import com.kickstarter.mock.MockExperimentsClientType
import com.kickstarter.mock.factories.ProjectDataFactory
import com.kickstarter.mock.factories.ProjectFactory
import com.kickstarter.mock.factories.RewardFactory
Expand Down Expand Up @@ -114,10 +112,9 @@ class AddOnViewHolderViewModelTest : KSRobolectricTestCase() {
}

@Test
fun testReward_LocalReceiptGroup_Visible_FF_On() {
fun testReward_LocalReceiptGroup_Visible() {
val env = environment()
.toBuilder()
.optimizely(getMockOptimizelyFFOn())
.build()
setUpEnvironment(env)

Expand All @@ -130,10 +127,9 @@ class AddOnViewHolderViewModelTest : KSRobolectricTestCase() {
}

@Test
fun testReward_LocalReceiptGroup_Visible_FF_On_When_RewardNotLocal() {
fun testReward_LocalReceiptGroup_Visible_When_RewardNotLocal() {
val env = environment()
.toBuilder()
.optimizely(getMockOptimizelyFFOn())
.build()
setUpEnvironment(env)

Expand All @@ -144,32 +140,4 @@ class AddOnViewHolderViewModelTest : KSRobolectricTestCase() {
this.localPickUpName.assertNoValues()
this.localPickUpIsGone.assertNoValues()
}

@Test
fun testReward_LocalReceipt_Group_Not_Visible_FF_Off() {
val env = environment()
.toBuilder()
.optimizely(getMockOptimizelyFFOff())
.build()
setUpEnvironment(env)

val project = ProjectFactory.project()
val reward = RewardFactory.localReceiptLocation()
this.vm.inputs.configureWith(ProjectDataFactory.project(project), reward)

this.localPickUpName.assertValue(reward.localReceiptLocation()?.displayableName())
this.localPickUpIsGone.assertValue(true)
}

private fun getMockOptimizelyFFOn() = object : MockExperimentsClientType() {
override fun isFeatureEnabled(key: OptimizelyFeature.Key): Boolean {
return true
}
}

private fun getMockOptimizelyFFOff() = object : MockExperimentsClientType() {
override fun isFeatureEnabled(key: OptimizelyFeature.Key): Boolean {
return false
}
}
}
Expand Up @@ -11,7 +11,6 @@ import com.kickstarter.libs.MockSharedPreferences
import com.kickstarter.libs.RefTag
import com.kickstarter.libs.models.Country
import com.kickstarter.libs.models.OptimizelyExperiment
import com.kickstarter.libs.models.OptimizelyFeature
import com.kickstarter.libs.utils.DateTimeUtils
import com.kickstarter.libs.utils.EventName
import com.kickstarter.libs.utils.RefTagUtils
Expand Down Expand Up @@ -439,12 +438,10 @@ class PledgeFragmentLegacyViewModelTest : KSRobolectricTestCase() {
}

@Test
fun testPaymentLoggingInUser_whenLocalPickupReward_FFOn() {
fun testPaymentLoggingInUser_whenLocalPickupReward() {
val mockCurrentUser = MockCurrentUser()
val optimizelyMock = getMockOptimizelyFFOn()
val environment = environment().toBuilder()
.currentUser(mockCurrentUser)
.optimizely(optimizelyMock)
.build()

setUpEnvironment(environment, RewardFactory.localReceiptLocation())
Expand All @@ -466,34 +463,6 @@ class PledgeFragmentLegacyViewModelTest : KSRobolectricTestCase() {
this.localPickupName.assertValue(RewardFactory.localReceiptLocation().localReceiptLocation()?.displayableName())
}

@Test
fun testPaymentLoggingInUser_whenLocalPickupReward_FFOff() {
val mockCurrentUser = MockCurrentUser()
val optimizelyMock = getMockOptimizelyFFOff()
val environment = environment().toBuilder()
.currentUser(mockCurrentUser)
.optimizely(optimizelyMock)
.build()

setUpEnvironment(environment, RewardFactory.localReceiptLocation())

this.cardsAndProject.assertNoValues()
this.continueButtonIsGone.assertValue(false)
this.paymentContainerIsGone.assertValue(true)
this.pledgeButtonIsGone.assertValue(true)
this.localPickupName.assertValue(RewardFactory.localReceiptLocation().localReceiptLocation()?.displayableName())
this.localPickUpIsGone.assertValue(true)

mockCurrentUser.refresh(UserFactory.user())

this.cardsAndProject.assertValueCount(1)
this.continueButtonIsGone.assertValues(false, true)
this.paymentContainerIsGone.assertValues(true, false)
this.pledgeButtonIsGone.assertValues(true, false)
this.localPickUpIsGone.assertValue(true)
this.localPickupName.assertValue(RewardFactory.localReceiptLocation().localReceiptLocation()?.displayableName())
}

@Test
fun testPledgeAmount_whenUpdatingPledge() {
val reward = RewardFactory.rewardWithShipping()
Expand Down Expand Up @@ -623,7 +592,6 @@ class PledgeFragmentLegacyViewModelTest : KSRobolectricTestCase() {
val locationName = reward.localReceiptLocation()?.displayableName()
val environment = environmentForLoggedInUser(UserFactory.user())
.toBuilder()
.optimizely(getMockOptimizelyFFOn())
.build()
setUpEnvironment(environment, reward)

Expand All @@ -647,36 +615,6 @@ class PledgeFragmentLegacyViewModelTest : KSRobolectricTestCase() {
this.segmentTrack.assertValue(EventName.PAGE_VIEWED.eventName)
}

@Test
fun testPledgeScreenConfiguration_whenPledgingLocalPickupRewardAndLoggedInAndFFOff() {
val reward = RewardFactory.localReceiptLocation()
val locationName = reward.localReceiptLocation()?.displayableName()
val environment = environmentForLoggedInUser(UserFactory.user())
.toBuilder()
.optimizely(getMockOptimizelyFFOff())
.build()
setUpEnvironment(environment, reward)

this.continueButtonIsEnabled.assertNoValues()
this.continueButtonIsGone.assertValue(true)
this.paymentContainerIsGone.assertValue(false)
this.pledgeButtonCTA.assertValue(R.string.Pledge)
this.pledgeButtonIsEnabled.assertValue(true)
this.pledgeButtonIsGone.assertValue(false)
this.pledgeMaximumIsGone.assertValue(true)
this.pledgeProgressIsGone.assertNoValues()
this.pledgeSectionIsGone.assertValue(true)
this.pledgeSummaryIsGone.assertValue(true)
this.bonusSectionIsGone.assertValue(false)
this.headerSectionIsGone.assertValue(false)
this.shippingSummaryIsGone.assertNoValues()
this.totalDividerIsGone.assertValue(false)
this.localPickUpIsGone.assertValue(true)
this.localPickupName.assertValue(locationName)

this.segmentTrack.assertValue(EventName.PAGE_VIEWED.eventName)
}

@Test
fun testPledgeScreenConfiguration_whenUpdatingPledgeOfShippableReward() {
val testData = setUpBackedShippableRewardTestData()
Expand Down Expand Up @@ -752,7 +690,6 @@ class PledgeFragmentLegacyViewModelTest : KSRobolectricTestCase() {
val pickupName = reward.localReceiptLocation()?.displayableName()
val environment = environmentForLoggedInUser(UserFactory.user())
.toBuilder()
.optimizely(getMockOptimizelyFFOn())
.build()

setUpEnvironment(environment, reward, backedProject, PledgeReason.UPDATE_PLEDGE)
Expand Down Expand Up @@ -851,7 +788,6 @@ class PledgeFragmentLegacyViewModelTest : KSRobolectricTestCase() {
val pickupName = reward.localReceiptLocation()?.displayableName()
val environment = environmentForLoggedInUser(UserFactory.user())
.toBuilder()
.optimizely(getMockOptimizelyFFOn())
.build()

setUpEnvironment(environment, reward, backedProject, PledgeReason.UPDATE_PAYMENT)
Expand Down Expand Up @@ -3137,16 +3073,4 @@ class PledgeFragmentLegacyViewModelTest : KSRobolectricTestCase() {

private fun normalizeCurrency(spannedCurrencyString: CharSequence) =
spannedCurrencyString.toString().replace("\u00A0", " ")

private fun getMockOptimizelyFFOn() = object : MockExperimentsClientType() {
override fun isFeatureEnabled(key: OptimizelyFeature.Key): Boolean {
return true
}
}

private fun getMockOptimizelyFFOff() = object : MockExperimentsClientType() {
override fun isFeatureEnabled(key: OptimizelyFeature.Key): Boolean {
return false
}
}
}

0 comments on commit dcfd6fa

Please sign in to comment.