summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-cli
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-09-20 21:44:21 +0200
committerFlorian Dold <florian@dold.me>2022-09-20 23:17:42 +0200
commit16a5bb40834c01e50e84144bb644517e67a66187 (patch)
treef6e7167aca608316ad03cf1e0debdb65eabe02cc /packages/taler-wallet-cli
parent52ec740c825d4e94fd59ef0a5cd8e8b73f4dfc06 (diff)
downloadwallet-core-16a5bb40834c01e50e84144bb644517e67a66187.tar.gz
wallet-core-16a5bb40834c01e50e84144bb644517e67a66187.tar.bz2
wallet-core-16a5bb40834c01e50e84144bb644517e67a66187.zip
wallet-core: make basic backup work again
Diffstat (limited to 'packages/taler-wallet-cli')
-rw-r--r--packages/taler-wallet-cli/src/index.ts20
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts31
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts20
3 files changed, 53 insertions, 18 deletions
diff --git a/packages/taler-wallet-cli/src/index.ts b/packages/taler-wallet-cli/src/index.ts
index 31e0b0f65..8fd0de642 100644
--- a/packages/taler-wallet-cli/src/index.ts
+++ b/packages/taler-wallet-cli/src/index.ts
@@ -887,6 +887,26 @@ currenciesCli
});
advancedCli
+ .subcommand("clearDatabase", "clear-database", {
+ help: "Clear the database, irrevocable deleting all data in the wallet.",
+ })
+ .action(async (args) => {
+ await withWallet(args, async (wallet) => {
+ await wallet.client.call(WalletApiOperation.ClearDb, {});
+ });
+ });
+
+advancedCli
+ .subcommand("recycle", "recycle", {
+ help: "Export, clear and re-import the database via the backup mechamism.",
+ })
+ .action(async (args) => {
+ await withWallet(args, async (wallet) => {
+ await wallet.client.call(WalletApiOperation.Recycle, {});
+ });
+ });
+
+advancedCli
.subcommand("payPrepare", "pay-prepare", {
help: "Claim an order but don't pay yet.",
})
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
index 23e01e5e1..c82d1e650 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
@@ -17,9 +17,13 @@
/**
* Imports.
*/
+import { j2s } from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { GlobalTestState, WalletCli } from "../harness/harness.js";
-import { createSimpleTestkudosEnvironment, withdrawViaBank } from "../harness/helpers.js";
+import {
+ createSimpleTestkudosEnvironment,
+ withdrawViaBank,
+} from "../harness/helpers.js";
import { SyncService } from "../harness/sync";
/**
@@ -28,13 +32,8 @@ import { SyncService } from "../harness/sync";
export async function runWalletBackupBasicTest(t: GlobalTestState) {
// Set up test environment
- const {
- commonDb,
- merchant,
- wallet,
- bank,
- exchange,
- } = await createSimpleTestkudosEnvironment(t);
+ const { commonDb, merchant, wallet, bank, exchange } =
+ await createSimpleTestkudosEnvironment(t);
const sync = await SyncService.create(t, {
currency: "TESTKUDOS",
@@ -106,6 +105,9 @@ export async function runWalletBackupBasicTest(t: GlobalTestState) {
{},
);
+ const txs = await wallet.client.call(WalletApiOperation.GetTransactions, {});
+ console.log(`backed up transactions ${j2s(txs)}`);
+
const wallet2 = new WalletCli(t, "wallet2");
// Check that the second wallet is a fresh wallet.
@@ -129,6 +131,11 @@ export async function runWalletBackupBasicTest(t: GlobalTestState) {
// Now do some basic checks that the restored wallet is still functional
{
+ const txs = await wallet2.client.call(
+ WalletApiOperation.GetTransactions,
+ {},
+ );
+ console.log(`restored transactions ${j2s(txs)}`);
const bal1 = await wallet2.client.call(WalletApiOperation.GetBalances, {});
t.assertAmountEquals(bal1.balances[0].available, "TESTKUDOS:14.1");
@@ -140,8 +147,16 @@ export async function runWalletBackupBasicTest(t: GlobalTestState) {
amount: "TESTKUDOS:10",
});
+ await exchange.runWirewatchOnce();
+
await wallet2.runUntilDone();
+ const txs2 = await wallet2.client.call(
+ WalletApiOperation.GetTransactions,
+ {},
+ );
+ console.log(`tx after withdraw after restore ${j2s(txs2)}`);
+
const bal2 = await wallet2.client.call(WalletApiOperation.GetBalances, {});
t.assertAmountEquals(bal2.balances[0].available, "TESTKUDOS:23.82");
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
index 8c20dcc2b..ec1d6417b 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
@@ -19,7 +19,11 @@
*/
import { PreparePayResultType } from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
-import { GlobalTestState, WalletCli, MerchantPrivateApi } from "../harness/harness.js";
+import {
+ GlobalTestState,
+ WalletCli,
+ MerchantPrivateApi,
+} from "../harness/harness.js";
import {
createSimpleTestkudosEnvironment,
makeTestPayment,
@@ -33,13 +37,8 @@ import { SyncService } from "../harness/sync";
export async function runWalletBackupDoublespendTest(t: GlobalTestState) {
// Set up test environment
- const {
- commonDb,
- merchant,
- wallet,
- bank,
- exchange,
- } = await createSimpleTestkudosEnvironment(t);
+ const { commonDb, merchant, wallet, bank, exchange } =
+ await createSimpleTestkudosEnvironment(t);
const sync = await SyncService.create(t, {
currency: "TESTKUDOS",
@@ -139,8 +138,9 @@ export async function runWalletBackupDoublespendTest(t: GlobalTestState) {
},
);
- t.assertTrue(
- preparePayResult.status === PreparePayResultType.PaymentPossible,
+ t.assertDeepEqual(
+ preparePayResult.status,
+ PreparePayResultType.PaymentPossible,
);
const res = await wallet2.client.call(WalletApiOperation.ConfirmPay, {