taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit ae3640df8afe20e393a0615c1f21203c9da5ce06
parent 53fe45f3a137970d55162d05583d804e8dbc26ca
Author: Marc Stibane <marc@taler.net>
Date:   Tue,  4 Jul 2023 16:24:00 +0200

test.taler.net instead of taler.ar

Diffstat:
MTalerWallet1/Controllers/PublicConstants.swift | 11++++++++---
MTalerWallet1/Model/Model+Settings.swift | 33+++++++++++++++------------------
MTalerWallet1/Views/Exchange/ExchangeListView.swift | 2+-
MTalerWallet1/Views/Exchange/ExchangeSectionView.swift | 4++--
MTalerWallet1/Views/Settings/SettingsView.swift | 59+++++++++++++++++++++++++++++++++++++++++++++++++++++------
5 files changed, 79 insertions(+), 30 deletions(-)

diff --git a/TalerWallet1/Controllers/PublicConstants.swift b/TalerWallet1/Controllers/PublicConstants.swift @@ -9,14 +9,19 @@ public let SLIDEDURATION: Double = 0.45 public let HTTPS = "https://" //public let DEMOBANK = HTTPS + "bAnK.dEmO.tAlEr.nEt" // should be weird to read, but still work +//public let DEMOEXCHANGE = HTTPS + "eXcHaNgE.dEmO.tAlEr.nEt" public let DEMOBANK = HTTPS + "bank.demo.taler.net" public let DEMOSHOP = HTTPS + "shop.demo.taler.net" public let DEMOBACKEND = HTTPS + "backend.demo.taler.net" -//public let DEMOEXCHANGE = HTTPS + "eXcHaNgE.dEmO.tAlEr.nEt" public let DEMOEXCHANGE = HTTPS + "exchange.demo.taler.net" -public let DEMO_AGE_EXCHANGE = HTTPS + "exchange-age.taler.ar" -public let DEMO_EXP_EXCHANGE = HTTPS + "exchange-expensive.taler.ar" +public let TESTBANK = HTTPS + "bank.test.taler.net" +public let TESTSHOP = HTTPS + "shop.test.taler.net" +public let TESTBACKEND = HTTPS + "backend.test.taler.net" +public let TESTEXCHANGE = HTTPS + "exchange.test.taler.net" +public let ARS_AGE_EXCHANGE = HTTPS + "exchange-age.taler.ar" +public let ARS_EXP_EXCHANGE = HTTPS + "exchange-expensive.taler.ar" public let DEMOCURRENCY = "KUDOS" +public let TESTCURRENCY = "TESTKUDOS" //public let LONGCURRENCY = "gold-pressed Latinum" // 20 characters, with dash and space public let LONGCURRENCY = "GOLDLATINUM" // 11 characters, no dash, no space diff --git a/TalerWallet1/Model/Model+Settings.swift b/TalerWallet1/Model/Model+Settings.swift @@ -7,11 +7,8 @@ import taler_swift import SymLog fileprivate let ASYNCDELAY: UInt = 0 //set e.g to 6 or 9 seconds for debugging -fileprivate let DEMO_EXCHANGEBASEURL = DEMOEXCHANGE -fileprivate let DEMO_BANKBASEURL = DEMOBANK -fileprivate let DEMO_BANKAPIBASEURL = DEMOBANK + "/demobanks/default/access-api/" -fileprivate let DEMO_MERCHANTBASEURL = DEMOBACKEND -fileprivate let DEMO_MERCHANTAUTHTOKEN = "secret-token:sandbox" +fileprivate let APIBASEURL = "/demobanks/default/access-api/" +fileprivate let MERCHANTAUTHTOKEN = "secret-token:sandbox" // MARK: - /// A request to add a test balance to the wallet. @@ -36,13 +33,13 @@ fileprivate struct WalletBackendWithdrawTestBalance: WalletBackendFormattedReque } } extension WalletModel { - @MainActor func loadTestKudosM() + @MainActor func loadTestKudosM(test: Bool) async throws { // M for MainActor - let amount = Amount(currency: DEMOCURRENCY, integer: 11, fraction: 0) + let amount = Amount(currency: test ? TESTCURRENCY : DEMOCURRENCY, integer: 11, fraction: 0) let request = WalletBackendWithdrawTestBalance(amount: amount, - bankBaseUrl: DEMO_BANKBASEURL, - exchangeBaseUrl: DEMO_EXCHANGEBASEURL, - bankAccessApiBaseUrl: DEMO_BANKAPIBASEURL) + bankBaseUrl: test ? TESTBANK : DEMOBANK, + exchangeBaseUrl: test ? TESTEXCHANGE : DEMOEXCHANGE, + bankAccessApiBaseUrl: (test ? TESTBANK : DEMOBANK) + APIBASEURL) let response = try await sendRequest(request, ASYNCDELAY) } } // loadTestKudosM() @@ -83,18 +80,18 @@ fileprivate struct WalletBackendRunIntegration: WalletBackendFormattedRequest { } } extension WalletModel { - @MainActor func runIntegrationTestM(newVersion: Bool) + @MainActor func runIntegrationTestM(newVersion: Bool, test: Bool) async throws { // M for MainActor - let amountW = Amount(currency: DEMOCURRENCY, integer: 3, fraction: 0) - let amountS = Amount(currency: DEMOCURRENCY, integer: 1, fraction: 0) + let amountW = Amount(currency: test ? TESTCURRENCY : DEMOCURRENCY, integer: 3, fraction: 0) + let amountS = Amount(currency: test ? TESTCURRENCY : DEMOCURRENCY, integer: 1, fraction: 0) let request = WalletBackendRunIntegration(newVersion: newVersion, amountToWithdraw: amountW, amountToSpend: amountS, - bankBaseUrl: DEMO_BANKAPIBASEURL, - bankAccessApiBaseUrl: DEMO_BANKAPIBASEURL, - exchangeBaseUrl: DEMO_EXCHANGEBASEURL, - merchantBaseUrl: DEMO_MERCHANTBASEURL, - merchantAuthToken: DEMO_MERCHANTAUTHTOKEN) + bankBaseUrl: (test ? TESTBANK : DEMOBANK) + APIBASEURL, + bankAccessApiBaseUrl: (test ? TESTBANK : DEMOBANK) + APIBASEURL, + exchangeBaseUrl: test ? TESTEXCHANGE : DEMOEXCHANGE, + merchantBaseUrl: test ? TESTBACKEND : DEMOBACKEND, + merchantAuthToken: MERCHANTAUTHTOKEN) let _ = try await sendRequest(request, ASYNCDELAY) } } // runIntegrationTestM() diff --git a/TalerWallet1/Views/Exchange/ExchangeListView.swift b/TalerWallet1/Views/Exchange/ExchangeListView.swift @@ -36,7 +36,7 @@ struct ExchangeListView: View { } @State var showAlert: Bool = false - @State var newExchange: String = "https://exchange-age.taler.ar/" + @State var newExchange: String = TESTEXCHANGE var body: some View { #if DEBUG diff --git a/TalerWallet1/Views/Exchange/ExchangeSectionView.swift b/TalerWallet1/Views/Exchange/ExchangeSectionView.swift @@ -73,14 +73,14 @@ struct ExchangeRow_Container : View { @State private var centsToTransfer: UInt64 = 100 var body: some View { - let exchange1 = Exchange(exchangeBaseUrl: DEMO_AGE_EXCHANGE, + let exchange1 = Exchange(exchangeBaseUrl: ARS_AGE_EXCHANGE, currency: LONGCURRENCY, paytoUris: [], tosStatus: "tosStatus", exchangeStatus: "exchangeStatus", ageRestrictionOptions: [12,16], permanent: true) - let exchange2 = Exchange(exchangeBaseUrl: DEMO_EXP_EXCHANGE, + let exchange2 = Exchange(exchangeBaseUrl: ARS_EXP_EXCHANGE, currency: LONGCURRENCY, paytoUris: [], tosStatus: "tosStatus", diff --git a/TalerWallet1/Views/Settings/SettingsView.swift b/TalerWallet1/Views/Settings/SettingsView.swift @@ -89,9 +89,9 @@ struct SettingsView: View { Button("Withdraw") { withDrawDisabled = true // don't run twice Task { - symLog.log("Withdraw TestKUDOS") + symLog.log("Withdraw KUDOS") do { - try await model.loadTestKudosM() + try await model.loadTestKudosM(test: false) } catch { // TODO: show error symLog.log(error.localizedDescription) } @@ -100,14 +100,61 @@ struct SettingsView: View { .buttonStyle(.bordered) .disabled(withDrawDisabled) } + SettingsItem(name: String(localized: "Withdraw \(TESTCURRENCY)"), description: String(localized: "Get money for testing")) { + Button("Withdraw") { + withDrawDisabled = true // don't run twice + Task { + symLog.log("Withdraw TESTKUDOS") + do { + try await model.loadTestKudosM(test: true) + } catch { // TODO: show error + symLog.log(error.localizedDescription) + } + } + } + .buttonStyle(.bordered) + .disabled(withDrawDisabled) + } + SettingsItem(name: String(localized: "Run Integration Test"), + description: String(localized: "Perform basic test transactions")) { + Button("Demo 1") { + checkDisabled = true // don't run twice + Task { + symLog.log("running integration test on demo") + do { + try await model.runIntegrationTestM(newVersion: false, test: false) + } catch { // TODO: show error + symLog.log(error.localizedDescription) + } + } + } + .buttonStyle(.bordered) + .disabled(checkDisabled) + } SettingsItem(name: String(localized: "Run Integration Test"), description: String(localized: "Perform basic test transactions")) { Button("Test 1") { checkDisabled = true // don't run twice Task { - symLog.log("running integration test") + symLog.log("running integration test on test") + do { + try await model.runIntegrationTestM(newVersion: false, test: true) + } catch { // TODO: show error + symLog.log(error.localizedDescription) + } + } + } + .buttonStyle(.bordered) + .disabled(checkDisabled) + } + SettingsItem(name: String(localized: "Run Integration Test V2"), + description: String(localized: "Perform more test transactions")) { + Button("Demo 2") { + checkDisabled = true // don't run twice + Task { + symLog.log("running integration test V2 on demo") do { - try await model.runIntegrationTestM(newVersion: false) + try await model.runIntegrationTestM(newVersion: true, test: false) } catch { // TODO: show error symLog.log(error.localizedDescription) } @@ -121,9 +168,9 @@ struct SettingsView: View { Button("Test 2") { checkDisabled = true // don't run twice Task { - symLog.log("running integration test V2") + symLog.log("running integration test V2 on test") do { - try await model.runIntegrationTestM(newVersion: true) + try await model.runIntegrationTestM(newVersion: true, test: true) } catch { // TODO: show error symLog.log(error.localizedDescription) }