gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [taler-wallet-webex] branch master updated: bump version /


From: gnunet
Subject: [GNUnet-SVN] [taler-wallet-webex] branch master updated: bump version / implement integrationtest cmd
Date: Sun, 18 Aug 2019 19:42:27 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-webex.

The following commit(s) were added to refs/heads/master by this push:
     new 1e9e9150 bump version / implement integrationtest cmd
1e9e9150 is described below

commit 1e9e915085cde817125d8cd0c9961b9252a05751
Author: Florian Dold <address@hidden>
AuthorDate: Sun Aug 18 19:42:21 2019 +0200

    bump version / implement integrationtest cmd
---
 package.json                         |   2 +-
 src/headless/taler-wallet-cli.ts     |  33 +++++++-
 src/headless/taler-wallet-testing.ts | 155 -----------------------------------
 src/index.ts                         |   3 +-
 tsconfig.json                        |   3 +-
 5 files changed, 36 insertions(+), 160 deletions(-)

diff --git a/package.json b/package.json
index a1822d23..7a4ef23c 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "taler-wallet",
-  "version": "0.0.8",
+  "version": "0.6.0",
   "description": "",
   "main": "dist/node/index.js",
   "repository": {
diff --git a/src/headless/taler-wallet-cli.ts b/src/headless/taler-wallet-cli.ts
index 9c4a84e3..6e219023 100644
--- a/src/headless/taler-wallet-cli.ts
+++ b/src/headless/taler-wallet-cli.ts
@@ -17,6 +17,8 @@
 import commander = require("commander");
 import os = require("os");
 import { getDefaultNodeWallet, withdrawTestBalance } from "./helpers";
+import { MerchantBackendConnection } from "./merchant";
+import { runIntegrationTest } from "./integrationtest";
 
 const program = new commander.Command();
 program.version("0.0.1");
@@ -36,7 +38,7 @@ program
   });
 
 program
-  .command("balance", undefined, { isDefault: true })
+  .command("balance")
   .description("show wallet balance")
   .action(async () => {
     console.log("balance command called");
@@ -49,6 +51,35 @@ program
     process.exit(0);
   });
 
+
+program
+  .command("integrationtest")
+  .option('-e, --exchange <exchange-url>', 'exchange base URL', 
"https://exchange.test.taler.net/";)
+  .option('-m, --merchant <merchant-url>', 'merchant base URL', 
"https://backend.test.taler.net/";)
+  .option('-m, --merchant-instance <merchant-instance>', 'merchant instance', 
"default")
+  .option('-m, --merchant-api-key <merchant-api-key>', 'merchant API key', 
"sandbox")
+  .option('-b, --bank <bank-url>', 'bank base URL', 
"https://bank.test.taler.net/";)
+  .option('-w, --withdraw-amount <withdraw-amt>', 'amount to withdraw', 
"TESTKUDOS:10")
+  .option('-s, --spend-amount <spend-amt>', 'amount to spend', "TESTKUDOS:5")
+  .description("Run integration test with bank, exchange and merchant.")
+  .action(async (cmdObj) => {
+
+    await runIntegrationTest({
+      amountToSpend: cmdObj.spendAmount,
+      amountToWithdraw: cmdObj.withdrawAmount,
+      bankBaseUrl: cmdObj.bank,
+      exchangeBaseUrl: cmdObj.exchange,
+      merchantApiKey: cmdObj.merchantApiKey,
+      merchantBaseUrl: cmdObj.merchant,
+      merchantInstance: cmdObj.merchantInstance,
+    }).catch(err => {
+      console.error("Failed with exception:");
+      console.error(err);
+    });
+
+    process.exit(0);
+  });
+
 // error on unknown commands
 program.on("command:*", function() {
   console.error(
diff --git a/src/headless/taler-wallet-testing.ts 
b/src/headless/taler-wallet-testing.ts
deleted file mode 100644
index cb0cfeac..00000000
--- a/src/headless/taler-wallet-testing.ts
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- This file is part of GNU Taler
- (C) 2019 GNUnet e.V.
-
- GNU Taler is free software; you can redistribute it and/or modify it under the
- terms of the GNU General Public License as published by the Free Software
- Foundation; either version 3, or (at your option) any later version.
-
- GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License along with
- GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
- */
-
-/**
- * Integration tests against real Taler bank/exchange/merchant deployments.
- */
-
-import { Wallet } from "../wallet";
-import * as amounts from "../amounts";
-import Axios from "axios";
-import URI = require("urijs");
-
-import { CheckPaymentResponse } from "../talerTypes";
-import { getDefaultNodeWallet, withdrawTestBalance } from "./helpers";
-import { Bank } from "./bank";
-
-const enableTracing = false;
-
-class MerchantBackendConnection {
-  constructor(
-    public merchantBaseUrl: string,
-    public merchantInstance: string,
-    public apiKey: string,
-  ) {}
-
-  async createOrder(
-    amount: string,
-    summary: string,
-    fulfillmentUrl: string,
-  ): Promise<{ orderId: string }> {
-    const reqUrl = new URI("order").absoluteTo(this.merchantBaseUrl).href();
-    const orderReq = {
-      order: {
-        amount,
-        summary,
-        fulfillment_url: fulfillmentUrl,
-        instance: this.merchantInstance,
-      },
-    };
-    const resp = await Axios({
-      method: "post",
-      url: reqUrl,
-      data: orderReq,
-      responseType: "json",
-      headers: {
-        Authorization: `ApiKey ${this.apiKey}`,
-      },
-    });
-    if (resp.status != 200) {
-      throw Error("failed to create bank reserve");
-    }
-    const orderId = resp.data.order_id;
-    if (!orderId) {
-      throw Error("no order id in response");
-    }
-    return { orderId };
-  }
-
-  async checkPayment(orderId: string): Promise<CheckPaymentResponse> {
-    const reqUrl = new URI("check-payment")
-      .absoluteTo(this.merchantBaseUrl)
-      .href();
-    const resp = await Axios({
-      method: "get",
-      url: reqUrl,
-      params: { order_id: orderId, instance: this.merchantInstance },
-      responseType: "json",
-      headers: {
-        Authorization: `ApiKey ${this.apiKey}`,
-      },
-    });
-    if (resp.status != 200) {
-      throw Error("failed to check payment");
-    }
-    return CheckPaymentResponse.checked(resp.data);
-  }
-}
-
-export async function main() {
-  const exchangeBaseUrl = "https://exchange.test.taler.net/";;
-  const bankBaseUrl = "https://bank.test.taler.net/";;
-
-  const myWallet = await getDefaultNodeWallet();
-
-  await withdrawTestBalance(myWallet);
-
-  const balance = await myWallet.getBalances();
-
-  console.log(JSON.stringify(balance, null, 2));
-
-  const myMerchant = new MerchantBackendConnection(
-    "https://backend.test.taler.net/";,
-    "default",
-    "sandbox",
-  );
-
-  const orderResp = await myMerchant.createOrder(
-    "TESTKUDOS:5",
-    "hello world",
-    "https://example.com/";,
-  );
-
-  console.log("created order with orderId", orderResp.orderId);
-
-  const paymentStatus = await myMerchant.checkPayment(orderResp.orderId);
-
-  console.log("payment status", paymentStatus);
-
-  const contractUrl = paymentStatus.contract_url;
-  if (!contractUrl) {
-    throw Error("no contract URL in payment response");
-  }
-
-  const proposalId = await myWallet.downloadProposal(contractUrl);
-
-  console.log("proposal id", proposalId);
-
-  const checkPayResult = await myWallet.checkPay(proposalId);
-
-  console.log("check pay result", checkPayResult);
-
-  const confirmPayResult = await myWallet.confirmPay(proposalId, undefined);
-
-  console.log("confirmPayResult", confirmPayResult);
-
-  const paymentStatus2 = await myMerchant.checkPayment(orderResp.orderId);
-
-  console.log("payment status after wallet payment:", paymentStatus2);
-
-  if (!paymentStatus2.paid) {
-    throw Error("payment did not succeed");
-  }
-
-  myWallet.stop();
-}
-
-if (require.main === module) {
-  main().catch(err => {
-    console.error("Failed with exception:");
-    console.error(err);
-  });
-}
diff --git a/src/index.ts b/src/index.ts
index 44f030d7..6b04c7e4 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -19,5 +19,4 @@
  */
 
 export { Wallet } from "./wallet";
-
-export { main as runIntegrationTest } from "./headless/taler-wallet-testing";
+export { runIntegrationTest } from "./headless/integrationtest";
diff --git a/tsconfig.json b/tsconfig.json
index 3e6a0aa1..2b1fe6b0 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -39,8 +39,9 @@
     "src/dbTypes.ts",
     "src/headless/bank.ts",
     "src/headless/helpers.ts",
+    "src/headless/integrationtest.ts",
+    "src/headless/merchant.ts",
     "src/headless/taler-wallet-cli.ts",
-    "src/headless/taler-wallet-testing.ts",
     "src/helpers-test.ts",
     "src/helpers.ts",
     "src/http.ts",

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]