summaryrefslogtreecommitdiff
path: root/packages/taler-integrationtests/src/test-timetravel.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-integrationtests/src/test-timetravel.ts')
-rw-r--r--packages/taler-integrationtests/src/test-timetravel.ts42
1 files changed, 35 insertions, 7 deletions
diff --git a/packages/taler-integrationtests/src/test-timetravel.ts b/packages/taler-integrationtests/src/test-timetravel.ts
index acc770d5d..086606b90 100644
--- a/packages/taler-integrationtests/src/test-timetravel.ts
+++ b/packages/taler-integrationtests/src/test-timetravel.ts
@@ -17,9 +17,18 @@
/**
* Imports.
*/
-import { runTest, GlobalTestState, MerchantPrivateApi, WalletCli } from "./harness";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
-import { PreparePayResultType, durationMin, Duration } from "taler-wallet-core";
+import {
+ runTest,
+ GlobalTestState,
+ MerchantPrivateApi,
+ WalletCli,
+} from "./harness";
+import {
+ createSimpleTestkudosEnvironment,
+ withdrawViaBank,
+ startWithdrawViaBank,
+} from "./helpers";
+import { PreparePayResultType, durationMin, Duration, TransactionType } from "taler-wallet-core";
/**
* Basic time travel test.
@@ -36,7 +45,7 @@ runTest(async (t: GlobalTestState) => {
// Withdraw digital cash into the wallet.
- await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:20" });
+ await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:15" });
// Travel 400 days into the future,
// as the deposit expiration is two years
@@ -56,9 +65,28 @@ runTest(async (t: GlobalTestState) => {
await merchant.pingUntilAvailable();
// This should fail, as the wallet didn't time travel yet.
- await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:20" });
+ await startWithdrawViaBank(t, {
+ wallet,
+ bank,
+ exchange,
+ amount: "TESTKUDOS:20",
+ });
+
+ // Check that transactions are correct for the failed withdrawal
+ {
+ await wallet.runUntilDone({ maxRetries: 5 });
+ const transactions = await wallet.getTransactions();
+ console.log(transactions);
+ const types = transactions.transactions.map((x) => x.type);
+ t.assertDeepEqual(types, ["withdrawal", "withdrawal"]);
+ const wtrans = transactions.transactions[0];
+ t.assertTrue(wtrans.type === TransactionType.Withdrawal);
+ t.assertTrue(wtrans.pending);
+ }
+
+ // Now we also let the wallet time travel
- const bal = await wallet.getBalances();
+ wallet.setTimetravel(timetravelDuration);
- console.log(bal);
+ await wallet.runUntilDone({ maxRetries: 5 });
});