From cbf848dd2a1b24bb30ab10155c235c13edea575d Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 13 Jan 2023 00:31:29 +0100 Subject: wallet-core: return pending status instead of error This allows clients to get the transaction ID of the confirmed payment. --- .../src/integrationtests/test-denom-unoffered.ts | 27 +++++++++++----------- 1 file changed, 13 insertions(+), 14 deletions(-) (limited to 'packages/taler-harness/src') 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" }); -- cgit v1.2.3