[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: fix pay-abort integration tes
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: fix pay-abort integration test |
Date: |
Wed, 13 Jan 2021 01:19:28 +0100 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository wallet-core.
The following commit(s) were added to refs/heads/master by this push:
new 94e35ca7 fix pay-abort integration test
94e35ca7 is described below
commit 94e35ca70a53df81e513ca068eb71fd28a239c18
Author: Florian Dold <florian@dold.me>
AuthorDate: Wed Jan 13 01:19:23 2021 +0100
fix pay-abort integration test
---
.../src/integrationtests/helpers.ts | 9 +-
.../src/integrationtests/test-pay-abort.ts | 130 +++++++--------------
2 files changed, 45 insertions(+), 94 deletions(-)
diff --git a/packages/taler-wallet-cli/src/integrationtests/helpers.ts
b/packages/taler-wallet-cli/src/integrationtests/helpers.ts
index f4e676b6..c51c306c 100644
--- a/packages/taler-wallet-cli/src/integrationtests/helpers.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/helpers.ts
@@ -45,7 +45,7 @@ import {
ConfirmPayResultType,
ContractTerms,
} from "taler-wallet-core";
-import { FaultInjectedMerchantService } from "./faultInjection";
+import { FaultInjectedExchangeService, FaultInjectedMerchantService } from
"./faultInjection";
import { defaultCoinConfig } from "./denomStructures";
export interface SimpleTestEnvironment {
@@ -139,6 +139,7 @@ export interface FaultyMerchantTestEnvironment {
commonDb: DbInfo;
bank: BankService;
exchange: ExchangeService;
+ faultyExchange: FaultInjectedExchangeService,
exchangeBankAccount: ExchangeBankAccount;
merchant: MerchantService;
faultyMerchant: FaultInjectedMerchantService;
@@ -176,6 +177,7 @@ export async function
createFaultInjectedMerchantTestkudosEnvironment(
});
const faultyMerchant = new FaultInjectedMerchantService(t, merchant, 9083);
+ const faultyExchange = new FaultInjectedExchangeService(t, exchange, 9081);
const exchangeBankAccount = await bank.createExchangeAccount(
"MyExchange",
@@ -183,7 +185,7 @@ export async function
createFaultInjectedMerchantTestkudosEnvironment(
);
exchange.addBankAccount("1", exchangeBankAccount);
- bank.setSuggestedExchange(exchange, exchangeBankAccount.accountPaytoUri);
+ bank.setSuggestedExchange(faultyExchange,
exchangeBankAccount.accountPaytoUri);
await bank.start();
@@ -194,7 +196,7 @@ export async function
createFaultInjectedMerchantTestkudosEnvironment(
await exchange.start();
await exchange.pingUntilAvailable();
- merchant.addExchange(exchange);
+ merchant.addExchange(faultyExchange);
await merchant.start();
await merchant.pingUntilAvailable();
@@ -223,6 +225,7 @@ export async function
createFaultInjectedMerchantTestkudosEnvironment(
bank,
exchangeBankAccount,
faultyMerchant,
+ faultyExchange,
};
}
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
b/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
index 4fd6edc9..ae8a28b8 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
@@ -22,89 +22,26 @@
/**
* Imports.
*/
+import { PreparePayResultType, TalerErrorCode, URL } from "taler-wallet-core";
+import { FaultInjectionRequestContext, FaultInjectionResponseContext } from
"./faultInjection";
+import { GlobalTestState, MerchantPrivateApi, setupDb } from "./harness";
import {
- GlobalTestState,
- MerchantService,
- ExchangeService,
- setupDb,
- BankService,
- WalletCli,
- MerchantPrivateApi,
-} from "./harness";
-import {
- FaultInjectedExchangeService,
- FaultInjectionRequestContext,
- FaultInjectionResponseContext,
-} from "./faultInjection";
-import { PreparePayResultType, URL, TalerErrorCode } from "taler-wallet-core";
-import { defaultCoinConfig } from "./denomStructures";
-import { withdrawViaBank, makeTestPayment } from "./helpers";
+ createFaultInjectedMerchantTestkudosEnvironment,
+ withdrawViaBank,
+} from "./helpers";
/**
* Run test for basic, bank-integrated withdrawal.
*/
export async function runPayAbortTest(t: GlobalTestState) {
+ const {
+ bank,
+ faultyExchange,
+ wallet,
+ faultyMerchant,
+ } = await createFaultInjectedMerchantTestkudosEnvironment(t);
// Set up test environment
- const db = await setupDb(t);
-
- const bank = await BankService.create(t, {
- allowRegistrations: true,
- currency: "TESTKUDOS",
- database: db.connStr,
- httpPort: 8082,
- });
-
- const exchange = ExchangeService.create(t, {
- name: "testexchange-1",
- currency: "TESTKUDOS",
- httpPort: 8081,
- database: db.connStr,
- });
-
- const exchangeBankAccount = await bank.createExchangeAccount(
- "MyExchange",
- "x",
- );
-
- bank.setSuggestedExchange(exchange, exchangeBankAccount.accountPaytoUri);
-
- await bank.start();
-
- await bank.pingUntilAvailable();
-
- await exchange.addBankAccount("1", exchangeBankAccount);
- exchange.addOfferedCoins(defaultCoinConfig);
-
- await exchange.start();
- await exchange.pingUntilAvailable();
-
- const faultyExchange = new FaultInjectedExchangeService(t, exchange, 8091);
-
- const merchant = await MerchantService.create(t, {
- name: "testmerchant-1",
- currency: "TESTKUDOS",
- httpPort: 8083,
- database: db.connStr,
- });
-
- merchant.addExchange(faultyExchange);
-
- await merchant.start();
- await merchant.pingUntilAvailable();
-
- await merchant.addInstance({
- id: "default",
- name: "Default Instance",
- paytoUris: [`payto://x-taler-bank/merchant-default`],
- });
-
- console.log("setup done!");
-
- const wallet = new WalletCli(t);
-
- // Create withdrawal operation
-
await withdrawViaBank(t, {
wallet,
exchange: faultyExchange,
@@ -112,23 +49,24 @@ export async function runPayAbortTest(t: GlobalTestState) {
bank,
});
- // faultyExchange.faultProxy.addFault({
- // modifyRequest(ctx: FaultInjectionRequestContext) {
- // console.log("proxy request to", ctx.requestUrl);
- // }
- // });
-
- const orderResp = await MerchantPrivateApi.createOrder(merchant, "default", {
- order: {
- summary: "Buy me!",
- amount: "TESTKUDOS:15",
- fulfillment_url: "taler://fulfillment-success/thx",
+ const orderResp = await MerchantPrivateApi.createOrder(
+ faultyMerchant,
+ "default",
+ {
+ order: {
+ summary: "Buy me!",
+ amount: "TESTKUDOS:15",
+ fulfillment_url: "taler://fulfillment-success/thx",
+ },
},
- });
+ );
- let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant,
{
- orderId: orderResp.order_id,
- });
+ let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(
+ faultyMerchant,
+ {
+ orderId: orderResp.order_id,
+ },
+ );
t.assertTrue(orderStatus.order_status === "unpaid");
@@ -168,6 +106,16 @@ export async function runPayAbortTest(t: GlobalTestState) {
},
});
+ faultyMerchant.faultProxy.addFault({
+ modifyResponse(ctx: FaultInjectionResponseContext) {
+ const url = new URL(ctx.request.requestUrl);
+ if (url.pathname.endsWith("/pay") && url.href != firstDepositUrl) {
+ ctx.responseBody = Buffer.from("{}");
+ ctx.statusCode = 400;
+ }
+ },
+ });
+
await t.assertThrowsOperationErrorAsync(async () => {
await wallet.confirmPay({
proposalId: preparePayResult.proposalId,
@@ -181,7 +129,7 @@ export async function runPayAbortTest(t: GlobalTestState) {
t.assertDeepEqual(txr.transactions[1].pending, true);
t.assertDeepEqual(
txr.transactions[1].error?.code,
- TalerErrorCode.WALLET_UNEXPECTED_REQUEST_ERROR,
+ TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE,
);
await wallet.abortFailedPayWithRefund({
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-wallet-core] branch master updated: fix pay-abort integration test,
gnunet <=