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:
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)
}