[#595] Visbility of fiat conversion on homeage depends on feature flag (#625)

Closes #595
This commit is contained in:
Michal Fousek 2023-03-07 18:03:37 +01:00 committed by GitHub
parent 082e058055
commit 6c77e0901b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 41 additions and 0 deletions

View File

@ -304,6 +304,7 @@
2EDA07A027EDE18C00D6F09B /* TCATextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EDA079F27EDE18C00D6F09B /* TCATextField.swift */; };
2EDA07A227EDE1AE00D6F09B /* TextFieldFooter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EDA07A127EDE1AE00D6F09B /* TextFieldFooter.swift */; };
2EDA07A427EDE2A900D6F09B /* DebugFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2EDA07A327EDE2A900D6F09B /* DebugFrame.swift */; };
341B30BB29B78D1000697081 /* HomeFeatureFlagTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 341B30BA29B78D1000697081 /* HomeFeatureFlagTests.swift */; };
34429C6E28E703CD00F2B929 /* TransactionSendingSnapshotTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34429C6D28E703CD00F2B929 /* TransactionSendingSnapshotTests.swift */; };
3448CB3228E47666006ADEDB /* NotEnoughFreeSpaceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3448CB3128E47666006ADEDB /* NotEnoughFreeSpaceView.swift */; };
3448CB3728E485CB006ADEDB /* NotEnoughFeeSpaceSnapshots.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3448CB3628E485CB006ADEDB /* NotEnoughFeeSpaceSnapshots.swift */; };
@ -639,6 +640,7 @@
2EDA079F27EDE18C00D6F09B /* TCATextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TCATextField.swift; sourceTree = "<group>"; };
2EDA07A127EDE1AE00D6F09B /* TextFieldFooter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextFieldFooter.swift; sourceTree = "<group>"; };
2EDA07A327EDE2A900D6F09B /* DebugFrame.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugFrame.swift; sourceTree = "<group>"; };
341B30BA29B78D1000697081 /* HomeFeatureFlagTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeFeatureFlagTests.swift; sourceTree = "<group>"; };
34429C6D28E703CD00F2B929 /* TransactionSendingSnapshotTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransactionSendingSnapshotTests.swift; sourceTree = "<group>"; };
3448CB3128E47666006ADEDB /* NotEnoughFreeSpaceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotEnoughFreeSpaceView.swift; sourceTree = "<group>"; };
3448CB3628E485CB006ADEDB /* NotEnoughFeeSpaceSnapshots.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotEnoughFeeSpaceSnapshots.swift; sourceTree = "<group>"; };
@ -1413,6 +1415,7 @@
isa = PBXGroup;
children = (
9E3911382848AD500073DD9A /* HomeTests.swift */,
341B30BA29B78D1000697081 /* HomeFeatureFlagTests.swift */,
);
path = HomeTests;
sourceTree = "<group>";
@ -2990,6 +2993,7 @@
9E7225F12889539300DF7F17 /* SettingsSnapshotTests.swift in Sources */,
3469F18229ACD70500A07146 /* OnboardingFlowFeatureFlagTests.swift in Sources */,
0DFE93DF272C6D4B000FCCA5 /* RecoveryPhraseBackupTests.swift in Sources */,
341B30BB29B78D1000697081 /* HomeFeatureFlagTests.swift in Sources */,
9EDDEAA22829610D00B4100C /* CurrencySelectionTests.swift in Sources */,
9E6713F12897F81B00A6796F /* MultiLineTextFieldTests.swift in Sources */,
9E01F8282833CDA0000EFC57 /* ScanTests.swift in Sources */,

View File

@ -31,6 +31,7 @@ struct HomeReducer: ReducerProtocol {
var settingsState: SettingsReducer.State
var shieldedBalance: Balance
var synchronizerStatusSnapshot: SyncStatusSnapshot
var walletConfig: WalletConfig
var walletEventsState: WalletEventsFlowReducer.State
// TODO: [#311] - Get the ZEC price from the SDK, https://github.com/zcash/secant-ios-wallet/issues/311
var zecPrice = Decimal(140.0)
@ -238,6 +239,7 @@ extension HomeReducer.State {
settingsState: .placeholder,
shieldedBalance: Balance.zero,
synchronizerStatusSnapshot: .default,
walletConfig: .default,
walletEventsState: .emptyPlaceHolder
)
}

View File

@ -106,6 +106,11 @@ extension HomeView {
viewStore.send(.debugMenuStartup)
}
}
if viewStore.walletConfig.isEnabled(.showFiatConversion) {
Text("$\(viewStore.totalCurrencyBalance.decimalString())")
.font(.system(size: 20))
}
Text("\(viewStore.synchronizerStatusSnapshot.message)")
}

View File

@ -312,6 +312,7 @@ extension RootReducer {
case .updateStateAfterConfigUpdate(let walletConfig):
state.walletConfig = walletConfig
state.onboardingState.walletConfig = walletConfig
state.homeState.walletConfig = walletConfig
return .none
case .dismissAlert:

View File

@ -11,12 +11,14 @@ enum FeatureFlag: String, CaseIterable, Codable {
case testFlag2
case onboardingFlow
case testBackupPhraseFlow
case showFiatConversion
var enabledByDefault: Bool {
switch self {
case .testFlag1, .testFlag2: return false
case .onboardingFlow: return false
case .testBackupPhraseFlow: return false
case .showFiatConversion: return false
}
}
}

View File

@ -0,0 +1,21 @@
//
// OnboardingFlowFeatureFlagTests.swift
// secantTests
//
// Created by Lukáš Korba on 23.02.2023.
//
import XCTest
@testable import secant_testnet
class HomeFeatureFlagTests: XCTestCase {
override func setUp() {
super.setUp()
UserDefaultsWalletConfigStorage().clearAll()
}
func testShowFiatConversionOffByDefault() throws {
XCTAssertFalse(WalletConfig.default.isEnabled(.showFiatConversion))
}
}

View File

@ -44,6 +44,7 @@ class HomeSnapshotTests: XCTestCase {
settingsState: .placeholder,
shieldedBalance: balance.redacted,
synchronizerStatusSnapshot: .default,
walletConfig: .default,
walletEventsState: .init(walletEvents: IdentifiedArrayOf(uniqueElements: walletEvents))
),
reducer: HomeReducer()

View File

@ -59,6 +59,7 @@ class WalletEventsSnapshotTests: XCTestCase {
settingsState: .placeholder,
shieldedBalance: balance.redacted,
synchronizerStatusSnapshot: .default,
walletConfig: .default,
walletEventsState: .init(walletEvents: IdentifiedArrayOf(uniqueElements: [walletEvent]))
),
reducer: HomeReducer()
@ -111,6 +112,7 @@ class WalletEventsSnapshotTests: XCTestCase {
settingsState: .placeholder,
shieldedBalance: balance.redacted,
synchronizerStatusSnapshot: .default,
walletConfig: .default,
walletEventsState: .init(walletEvents: IdentifiedArrayOf(uniqueElements: [walletEvent]))
),
reducer: HomeReducer()
@ -163,6 +165,7 @@ class WalletEventsSnapshotTests: XCTestCase {
settingsState: .placeholder,
shieldedBalance: balance.redacted,
synchronizerStatusSnapshot: .default,
walletConfig: .default,
walletEventsState: .init(walletEvents: IdentifiedArrayOf(uniqueElements: [walletEvent]))
),
reducer: HomeReducer()
@ -221,6 +224,7 @@ class WalletEventsSnapshotTests: XCTestCase {
settingsState: .placeholder,
shieldedBalance: balance.redacted,
synchronizerStatusSnapshot: .default,
walletConfig: .default,
walletEventsState: .init(walletEvents: IdentifiedArrayOf(uniqueElements: [walletEvent]))
),
reducer: HomeReducer()

View File

@ -133,6 +133,7 @@ class WalletConfigProviderTests: XCTestCase {
store.receive(.updateStateAfterConfigUpdate(flags)) { state in
state.walletConfig = flags
state.onboardingState.walletConfig = flags
state.homeState.walletConfig = flags
}
}
}