diff options
author | Florian Dold <florian@dold.me> | 2024-03-06 11:02:13 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-03-06 11:02:13 +0100 |
commit | 541886750eb1bc32b9aa0323868dd24776baf0eb (patch) | |
tree | 39fd2c3eaf5a1f4b4d676f8f3568750be7763b17 /packages/taler-harness | |
parent | d10b46bffcef1599ba59538c69cc11499a852b4d (diff) | |
download | wallet-core-541886750eb1bc32b9aa0323868dd24776baf0eb.tar.xz |
taler-harness: test aborting refreshes
Diffstat (limited to 'packages/taler-harness')
-rw-r--r-- | packages/taler-harness/src/integrationtests/test-wallet-refresh.ts | 60 | ||||
-rw-r--r-- | packages/taler-harness/tsconfig.json | 2 |
2 files changed, 59 insertions, 3 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-refresh.ts b/packages/taler-harness/src/integrationtests/test-wallet-refresh.ts index b86dfadcf..f1c544a4e 100644 --- a/packages/taler-harness/src/integrationtests/test-wallet-refresh.ts +++ b/packages/taler-harness/src/integrationtests/test-wallet-refresh.ts @@ -20,12 +20,15 @@ import { AmountString, NotificationType, + TransactionIdStr, TransactionMajorState, TransactionType, j2s, } from "@gnu-taler/taler-util"; -import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; -import { parseTransactionIdentifier } from "../../../taler-wallet-core/src/transactions.js"; +import { + WalletApiOperation, + parseTransactionIdentifier, +} from "@gnu-taler/taler-wallet-core"; import { GlobalTestState, generateRandomPayto } from "../harness/harness.js"; import { createSimpleTestkudosEnvironmentV2, @@ -139,6 +142,59 @@ export async function runWalletRefreshTest(t: GlobalTestState) { bal2.balances[0].available, ); } + + const wres = await withdrawViaBankV2(t, { + walletClient, + bank, + exchange, + amount: "TESTKUDOS:20", + }); + + await wres.withdrawalFinishedCond; + + // Test failing a refresh transaction + { + await exchange.stop(); + + let refreshTransactionId: TransactionIdStr | undefined = undefined; + + const refreshCreatedCond = walletClient.waitForNotificationCond((x) => { + if ( + x.type === NotificationType.TransactionStateTransition && + parseTransactionIdentifier(x.transactionId)?.tag === + TransactionType.Refresh + ) { + refreshTransactionId = x.transactionId as TransactionIdStr; + return true; + } + return false; + }); + + const depositGroupResult = await walletClient.client.call( + WalletApiOperation.CreateDepositGroup, + { + amount: "TESTKUDOS:10.5" as AmountString, + depositPaytoUri: generateRandomPayto("foo"), + }, + ); + + await refreshCreatedCond; + + t.assertTrue(!!refreshTransactionId); + + await walletClient.call(WalletApiOperation.FailTransaction, { + transactionId: refreshTransactionId, + }); + + const txn = await walletClient.call(WalletApiOperation.GetTransactionById, { + transactionId: refreshTransactionId, + }); + + t.assertDeepEqual(txn.type, TransactionType.Refresh); + t.assertDeepEqual(txn.txState.major, TransactionMajorState.Failed); + + t.assertTrue(!!refreshTransactionId); + } } runWalletRefreshTest.suites = ["wallet"]; diff --git a/packages/taler-harness/tsconfig.json b/packages/taler-harness/tsconfig.json index 3d0b501b3..0453aaff0 100644 --- a/packages/taler-harness/tsconfig.json +++ b/packages/taler-harness/tsconfig.json @@ -21,7 +21,7 @@ "baseUrl": "./src", "typeRoots": ["./node_modules/@types"] }, - "include": ["src/**/*", "../taler-util/src/merchant-api-types.ts"], + "include": ["src/**/*"], "references": [ { "path": "../taler-wallet-core/" |