aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-harness/src
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-04-03 16:21:33 +0200
committerFlorian Dold <florian@dold.me>2024-04-03 16:21:33 +0200
commit65a656163797e9dd298b34ec916b982082db7f52 (patch)
tree1a226c657639c69194ddf7682a805bf2aa14191c /packages/taler-harness/src
parent5417b8b7b866f1c4f4d99d6ec9ad001af67822b6 (diff)
downloadwallet-core-65a656163797e9dd298b34ec916b982082db7f52.tar.xz
wallet-core: allow deposits with balance locked behind refresh
Diffstat (limited to 'packages/taler-harness/src')
-rw-r--r--packages/taler-harness/src/integrationtests/test-wallet-blocked-deposit.ts (renamed from packages/taler-harness/src/integrationtests/test-wallet-refresh-blocked.ts)44
-rw-r--r--packages/taler-harness/src/integrationtests/testrunner.ts4
2 files changed, 40 insertions, 8 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-refresh-blocked.ts b/packages/taler-harness/src/integrationtests/test-wallet-blocked-deposit.ts
index 4662c5110..cb9c54f1d 100644
--- a/packages/taler-harness/src/integrationtests/test-wallet-refresh-blocked.ts
+++ b/packages/taler-harness/src/integrationtests/test-wallet-blocked-deposit.ts
@@ -17,10 +17,16 @@
/**
* Imports.
*/
-import { AmountString, j2s } from "@gnu-taler/taler-util";
+import {
+ AmountString,
+ NotificationType,
+ TransactionMajorState,
+ TransactionMinorState,
+ j2s,
+} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { CoinConfig } from "../harness/denomStructures.js";
-import { GlobalTestState } from "../harness/harness.js";
+import { GlobalTestState, generateRandomPayto } from "../harness/harness.js";
import {
createSimpleTestkudosEnvironmentV2,
createWalletDaemonWithClient,
@@ -43,7 +49,7 @@ const coinCommon = {
/**
* Run test for refreshe after a payment.
*/
-export async function runWalletRefreshBlockedTest(t: GlobalTestState) {
+export async function runWalletBlockedDeposit(t: GlobalTestState) {
// Set up test environment
const coinConfigList: CoinConfig[] = [
@@ -66,6 +72,7 @@ export async function runWalletRefreshBlockedTest(t: GlobalTestState) {
const { walletClient: w1 } = await createWalletDaemonWithClient(t, {
name: "w1",
+ persistent: true,
config: {
testing: {
devModeActive: true,
@@ -97,6 +104,8 @@ export async function runWalletRefreshBlockedTest(t: GlobalTestState) {
},
});
+ const userPayto = generateRandomPayto("foo");
+
const bal = await w1.call(WalletApiOperation.GetBalances, {});
console.log(`balance: ${j2s(bal)}`);
@@ -109,12 +118,35 @@ export async function runWalletRefreshBlockedTest(t: GlobalTestState) {
const depositCheckResp = await w1.call(WalletApiOperation.PrepareDeposit, {
amount: "TESTKUDOS:18" as AmountString,
- depositPaytoUri: "payto://x-taler-bank/localhost/myuser",
+ depositPaytoUri: userPayto,
});
console.log(`check resp: ${j2s(depositCheckResp)}`);
- // t.assertTrue(false);
+ const depositCreateResp = await w1.call(
+ WalletApiOperation.CreateDepositGroup,
+ {
+ amount: "TESTKUDOS:18" as AmountString,
+ depositPaytoUri: userPayto,
+ },
+ );
+
+ console.log(`create resp: ${j2s(depositCreateResp)}`);
+
+ const depositTrackCond = w1.waitForNotificationCond((n) => {
+ return (
+ n.type === NotificationType.TransactionStateTransition &&
+ n.transactionId === depositCreateResp.transactionId &&
+ n.newTxState.major === TransactionMajorState.Pending &&
+ n.newTxState.minor === TransactionMinorState.Track
+ );
+ });
+
+ await w1.call(WalletApiOperation.ApplyDevExperiment, {
+ devExperimentUri: "taler://dev-experiment/stop-block-refresh",
+ });
+
+ await depositTrackCond;
}
-runWalletRefreshBlockedTest.suites = ["wallet"];
+runWalletBlockedDeposit.suites = ["wallet"];
diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts b/packages/taler-harness/src/integrationtests/testrunner.ts
index 2bca91e45..063aefa43 100644
--- a/packages/taler-harness/src/integrationtests/testrunner.ts
+++ b/packages/taler-harness/src/integrationtests/testrunner.ts
@@ -101,7 +101,7 @@ import { runWalletGenDbTest } from "./test-wallet-gendb.js";
import { runWalletInsufficientBalanceTest } from "./test-wallet-insufficient-balance.js";
import { runWalletNotificationsTest } from "./test-wallet-notifications.js";
import { runWalletObservabilityTest } from "./test-wallet-observability.js";
-import { runWalletRefreshBlockedTest } from "./test-wallet-refresh-blocked.js";
+import { runWalletBlockedDeposit } from "./test-wallet-blocked-deposit.js";
import { runWalletRefreshTest } from "./test-wallet-refresh.js";
import { runWalletWirefeesTest } from "./test-wallet-wirefees.js";
import { runWallettestingTest } from "./test-wallettesting.js";
@@ -213,7 +213,7 @@ const allTests: TestMainFunction[] = [
runWalletWirefeesTest,
runDenomLostTest,
runWalletDenomExpireTest,
- runWalletRefreshBlockedTest,
+ runWalletBlockedDeposit,
];
export interface TestRunSpec {