wallet: fix withdrawal in timetravel test
This commit is contained in:
parent
6df9202935
commit
3aa0b812f4
@ -23,36 +23,36 @@
|
||||
/**
|
||||
* Imports
|
||||
*/
|
||||
import {
|
||||
AmountString,
|
||||
ConfirmPayResultType,
|
||||
ContractTerms,
|
||||
Duration,
|
||||
PreparePayResultType,
|
||||
} from "@gnu-taler/taler-util";
|
||||
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
|
||||
import { CoinConfig, defaultCoinConfig } from "./denomStructures.js";
|
||||
import {
|
||||
FaultInjectedExchangeService,
|
||||
FaultInjectedMerchantService,
|
||||
} from "./faultInjection";
|
||||
import { CoinConfig, defaultCoinConfig } from "./denomStructures";
|
||||
} from "./faultInjection.js";
|
||||
import {
|
||||
AmountString,
|
||||
Duration,
|
||||
ContractTerms,
|
||||
PreparePayResultType,
|
||||
ConfirmPayResultType,
|
||||
} from "@gnu-taler/taler-util";
|
||||
import {
|
||||
DbInfo,
|
||||
BankService,
|
||||
ExchangeService,
|
||||
MerchantService,
|
||||
WalletCli,
|
||||
GlobalTestState,
|
||||
setupDb,
|
||||
ExchangeServiceInterface,
|
||||
BankApi,
|
||||
BankAccessApi,
|
||||
MerchantServiceInterface,
|
||||
MerchantPrivateApi,
|
||||
HarnessExchangeBankAccount,
|
||||
WithAuthorization,
|
||||
BankApi,
|
||||
BankService,
|
||||
DbInfo,
|
||||
ExchangeService,
|
||||
ExchangeServiceInterface,
|
||||
getPayto,
|
||||
GlobalTestState,
|
||||
HarnessExchangeBankAccount,
|
||||
MerchantPrivateApi,
|
||||
MerchantService,
|
||||
MerchantServiceInterface,
|
||||
setupDb,
|
||||
WalletCli,
|
||||
WithAuthorization,
|
||||
} from "./harness.js";
|
||||
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
|
||||
|
||||
export interface SimpleTestEnvironment {
|
||||
commonDb: DbInfo;
|
||||
@ -242,7 +242,9 @@ export async function createFaultInjectedMerchantTestkudosEnvironment(
|
||||
}
|
||||
|
||||
/**
|
||||
* Withdraw balance.
|
||||
* Start withdrawing into the wallet.
|
||||
*
|
||||
* Only starts the operation, does not wait for it to finish.
|
||||
*/
|
||||
export async function startWithdrawViaBank(
|
||||
t: GlobalTestState,
|
||||
@ -277,8 +279,8 @@ export async function startWithdrawViaBank(
|
||||
|
||||
await BankApi.confirmWithdrawalOperation(bank, user, wop);
|
||||
|
||||
await wallet.runPending();
|
||||
await wallet.runUntilDone();
|
||||
// We do *not* call runPending / runUntilDone on the wallet here.
|
||||
// Some tests rely on the final withdraw failing.
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -17,14 +17,14 @@
|
||||
/**
|
||||
* Imports.
|
||||
*/
|
||||
import { Duration, TransactionType } from "@gnu-taler/taler-util";
|
||||
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
|
||||
import { GlobalTestState } from "../harness/harness.js";
|
||||
import {
|
||||
createSimpleTestkudosEnvironment,
|
||||
withdrawViaBank,
|
||||
startWithdrawViaBank,
|
||||
withdrawViaBank,
|
||||
} from "../harness/helpers.js";
|
||||
import { Duration, TransactionType } from "@gnu-taler/taler-util";
|
||||
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
|
||||
|
||||
/**
|
||||
* Basic time travel test.
|
||||
@ -32,12 +32,8 @@ import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
|
||||
export async function runTimetravelWithdrawTest(t: GlobalTestState) {
|
||||
// Set up test environment
|
||||
|
||||
const {
|
||||
wallet,
|
||||
bank,
|
||||
exchange,
|
||||
merchant,
|
||||
} = await createSimpleTestkudosEnvironment(t);
|
||||
const { wallet, bank, exchange, merchant } =
|
||||
await createSimpleTestkudosEnvironment(t);
|
||||
|
||||
// Withdraw digital cash into the wallet.
|
||||
|
||||
@ -61,6 +57,8 @@ export async function runTimetravelWithdrawTest(t: GlobalTestState) {
|
||||
await merchant.start();
|
||||
await merchant.pingUntilAvailable();
|
||||
|
||||
console.log("starting withdrawal via bank");
|
||||
|
||||
// This should fail, as the wallet didn't time travel yet.
|
||||
await startWithdrawViaBank(t, {
|
||||
wallet,
|
||||
@ -69,9 +67,13 @@ export async function runTimetravelWithdrawTest(t: GlobalTestState) {
|
||||
amount: "TESTKUDOS:20",
|
||||
});
|
||||
|
||||
console.log("starting withdrawal done");
|
||||
|
||||
// Check that transactions are correct for the failed withdrawal
|
||||
{
|
||||
console.log("running until done (should run into maxRetries limit)");
|
||||
await wallet.runUntilDone({ maxRetries: 5 });
|
||||
console.log("wallet done running");
|
||||
const transactions = await wallet.client.call(
|
||||
WalletApiOperation.GetTransactions,
|
||||
{},
|
||||
|
Loading…
Reference in New Issue
Block a user