diff options
author | Florian Dold <florian@dold.me> | 2023-01-13 00:31:29 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-01-13 00:31:29 +0100 |
commit | cbf848dd2a1b24bb30ab10155c235c13edea575d (patch) | |
tree | 7cbb3ac38b24cb33265dc57b09dd25e54b1ad057 /packages/taler-harness/src | |
parent | 72ca5ee8dda247c1567b5f8d3878cd8371a9983f (diff) | |
download | wallet-core-cbf848dd2a1b24bb30ab10155c235c13edea575d.tar.xz |
wallet-core: return pending status instead of error
This allows clients to get the transaction ID of the confirmed payment.
Diffstat (limited to 'packages/taler-harness/src')
-rw-r--r-- | packages/taler-harness/src/integrationtests/test-denom-unoffered.ts | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts b/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts index b5ecbee4a..5b3aec551 100644 --- a/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts +++ b/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts @@ -18,7 +18,7 @@ * Imports. */ import { PreparePayResultType, TalerErrorCode } from "@gnu-taler/taler-util"; -import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; +import { Wallet, WalletApiOperation } from "@gnu-taler/taler-wallet-core"; import { GlobalTestState, MerchantPrivateApi } from "../harness/harness.js"; import { createSimpleTestkudosEnvironment, @@ -55,7 +55,6 @@ export async function runDenomUnofferedTest(t: GlobalTestState) { fulfillment_url: "taler://fulfillment-success/thx", }; - { const orderResp = await MerchantPrivateApi.createOrder( merchant, "default", @@ -86,34 +85,34 @@ export async function runDenomUnofferedTest(t: GlobalTestState) { preparePayResult.status === PreparePayResultType.PaymentPossible, ); - const exc = await t.assertThrowsTalerErrorAsync(async () => { - await wallet.client.call(WalletApiOperation.ConfirmPay, { - proposalId: preparePayResult.proposalId, - }); + const confirmResp = await wallet.client.call(WalletApiOperation.ConfirmPay, { + proposalId: preparePayResult.proposalId, + }); + + const tx = await wallet.client.call(WalletApiOperation.GetTransactionById, { + transactionId: confirmResp.transactionId, }); t.assertTrue( - exc.hasErrorCode(TalerErrorCode.WALLET_PENDING_OPERATION_FAILED), + tx.error?.code === TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR ); - // FIXME: We might want a more specific error code here! - t.assertDeepEqual( - exc.errorDetail.innerError.code, - TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR, - ); - const merchantErrorCode = (exc.errorDetail.innerError.errorResponse as any) + const merchantErrorCode = ((tx.error as any).errorResponse as any) .code; t.assertDeepEqual( merchantErrorCode, TalerErrorCode.MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_NOT_FOUND, ); - } await wallet.client.call(WalletApiOperation.AddExchange, { exchangeBaseUrl: exchange.baseUrl, forceUpdate: true, }); + await wallet.client.call(WalletApiOperation.DeleteTransaction, { + transactionId: confirmResp.transactionId, + }); + // Now withdrawal should work again. await withdrawViaBank(t, { wallet, bank, exchange, amount: "TESTKUDOS:20" }); |