summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-02-13 12:08:35 +0100
committerFlorian Dold <florian@dold.me>2024-02-13 12:08:35 +0100
commitc23ad08e4481de611be3f51a392118f97f6da70e (patch)
tree9beae1a4fc8070c7343c695a759e582a5a0cfdf3
parent3a62b8522e6b7cb587bbb0c3ce606527e918e06d (diff)
downloadwallet-core-c23ad08e4481de611be3f51a392118f97f6da70e.tar.gz
wallet-core-c23ad08e4481de611be3f51a392118f97f6da70e.tar.bz2
wallet-core-c23ad08e4481de611be3f51a392118f97f6da70e.zip
remove rewards from tests
-rw-r--r--packages/taler-harness/src/index.ts119
-rw-r--r--packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts49
-rw-r--r--packages/taler-harness/src/integrationtests/test-denom-unoffered.ts1
-rw-r--r--packages/taler-util/src/MerchantApiClient.ts63
-rw-r--r--packages/taler-util/src/merchant-api-types.ts32
5 files changed, 3 insertions, 261 deletions
diff --git a/packages/taler-harness/src/index.ts b/packages/taler-harness/src/index.ts
index 530f25a7c..0fdf3a15b 100644
--- a/packages/taler-harness/src/index.ts
+++ b/packages/taler-harness/src/index.ts
@@ -381,104 +381,6 @@ const deploymentCli = testingCli.subcommand("deploymentArgs", "deployment", {
});
deploymentCli
- .subcommand("tipTopup", "tip-topup")
- .requiredOption("merchantBaseUrl", ["--merchant-url"], clk.STRING)
- .requiredOption("exchangeBaseUrl", ["--exchange-url"], clk.STRING)
- .requiredOption("merchantApikey", ["--merchant-apikey"], clk.STRING)
- .requiredOption("bankAccessUrl", ["--bank-access-url"], clk.STRING)
- .requiredOption("bankAccount", ["--bank-account"], clk.STRING)
- .requiredOption("bankPassword", ["--bank-password"], clk.STRING)
- .requiredOption("wireMethod", ["--wire-method"], clk.STRING)
- .requiredOption("amount", ["--amount"], clk.AMOUNT)
- .action(async (args) => {
- const amount = args.tipTopup.amount;
-
- const merchantClient = new MerchantApiClient(
- args.tipTopup.merchantBaseUrl,
- {
- auth: {
- method: "token",
- token: args.tipTopup.merchantApikey,
- },
- },
- );
-
- const res = await merchantClient.getPrivateInstanceInfo();
- console.log(res);
-
- const tipReserveResp = await merchantClient.createTippingReserve({
- exchange_url: args.tipTopup.exchangeBaseUrl,
- initial_balance: amount,
- wire_method: args.tipTopup.wireMethod,
- });
-
- console.log(tipReserveResp);
-
- const bankAccessApiClient = new TalerCorebankApiClient(
- args.tipTopup.bankAccessUrl,
- {
- auth: {
- username: args.tipTopup.bankAccount,
- password: args.tipTopup.bankPassword,
- },
- },
- );
-
- const paytoUri = addPaytoQueryParams(tipReserveResp.accounts[0].payto_uri, {
- message: `tip-reserve ${tipReserveResp.reserve_pub}`,
- });
- console.log("payto URI:", paytoUri);
-
- const transactions = await bankAccessApiClient.getTransactions(
- args.tipTopup.bankAccount,
- );
- console.log("transactions:", j2s(transactions));
-
- await bankAccessApiClient.createTransaction(args.tipTopup.bankAccount, {
- amount,
- paytoUri,
- });
- });
-
-deploymentCli
- .subcommand("tipCleanup", "tip-cleanup")
- .requiredOption("merchantBaseUrl", ["--merchant-url"], clk.STRING)
- .requiredOption("merchantApikey", ["--merchant-apikey"], clk.STRING)
- .flag("dryRun", ["--dry-run"])
- .action(async (args) => {
- const merchantClient = new MerchantApiClient(
- args.tipCleanup.merchantBaseUrl,
- {
- auth: {
- method: "token",
- token: args.tipCleanup.merchantApikey,
- },
- },
- );
-
- const res = await merchantClient.getPrivateInstanceInfo();
- console.log(res);
-
- const tipRes = await merchantClient.getPrivateTipReserves();
- console.log(tipRes);
-
- for (const reserve of tipRes.reserves) {
- if (Amounts.isZero(reserve.exchange_initial_amount)) {
- if (args.tipCleanup.dryRun) {
- logger.info(`dry run, would purge reserve ${reserve}`);
- } else {
- await merchantClient.deleteTippingReserve({
- reservePub: reserve.reserve_pub,
- purge: true,
- });
- }
- }
- }
-
- // FIXME: Now delete reserves that are not filled yet
- });
-
-deploymentCli
.subcommand("testTalerdotnetDemo", "test-demodottalerdotnet")
.action(async (args) => {
const http = createPlatformHttpLib();
@@ -564,27 +466,6 @@ deploymentCli
});
deploymentCli
- .subcommand("tipStatus", "tip-status")
- .requiredOption("merchantBaseUrl", ["--merchant-url"], clk.STRING)
- .requiredOption("merchantApikey", ["--merchant-apikey"], clk.STRING)
- .action(async (args) => {
- const merchantClient = new MerchantApiClient(
- args.tipStatus.merchantBaseUrl,
- {
- auth: {
- method: "token",
- token: args.tipStatus.merchantApikey,
- },
- },
- );
-
- const res = await merchantClient.getPrivateInstanceInfo();
-
- const tipRes = await merchantClient.getPrivateTipReserves();
- console.log(j2s(tipRes));
- });
-
-deploymentCli
.subcommand("lintExchange", "lint-exchange", {
help: "Run checks on the exchange deployment.",
})
diff --git a/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts b/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts
index 8ca00359c..cdb100c65 100644
--- a/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts
+++ b/packages/taler-harness/src/integrationtests/test-age-restrictions-merchant.ts
@@ -17,21 +17,16 @@
/**
* Imports.
*/
+import { AmountString, MerchantApiClient } from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { defaultCoinConfig } from "../harness/denomStructures.js";
-import { getWireMethodForTest, GlobalTestState } from "../harness/harness.js";
+import { GlobalTestState } from "../harness/harness.js";
import {
createSimpleTestkudosEnvironmentV2,
createWalletDaemonWithClient,
makeTestPaymentV2,
withdrawViaBankV2,
} from "../harness/helpers.js";
-import {
- TalerCorebankApiClient,
- MerchantApiClient,
- WireGatewayApiClient,
- AmountString,
-} from "@gnu-taler/taler-util";
/**
* Run test for basic, bank-integrated withdrawal and payment.
@@ -177,46 +172,6 @@ export async function runAgeRestrictionsMerchantTest(t: GlobalTestState) {
{},
);
}
-
- // Pay with coin from tipping
- {
- const bankClient = new TalerCorebankApiClient(bank.corebankApiBaseUrl);
- const mbu = await bankClient.createRandomBankUser();
- const tipReserveResp = await merchantClient.createTippingReserve({
- exchange_url: exchange.baseUrl,
- initial_balance: "TESTKUDOS:10" as AmountString,
- wire_method: getWireMethodForTest(),
- });
-
- t.assertDeepEqual(
- tipReserveResp.accounts[0].payto_uri,
- exchangeBankAccount.accountPaytoUri,
- );
-
- const wireGatewayApiClient = new WireGatewayApiClient(
- exchangeBankAccount.wireGatewayApiBaseUrl,
- {
- auth: {
- username: exchangeBankAccount.accountName,
- password: exchangeBankAccount.accountPassword,
- },
- },
- );
-
- await wireGatewayApiClient.adminAddIncoming({
- amount: "TESTKUDOS:10",
- debitAccountPayto: mbu.accountPaytoUri,
- reservePub: tipReserveResp.reserve_pub,
- });
-
- await exchange.runWirewatchOnce();
-
- const tip = await merchantClient.giveTip({
- amount: "TESTKUDOS:5" as AmountString,
- justification: "why not?",
- next_url: "https://example.com/after-tip",
- });
- }
}
runAgeRestrictionsMerchantTest.suites = ["wallet"];
diff --git a/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts b/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts
index 1a62a6065..79269d533 100644
--- a/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts
+++ b/packages/taler-harness/src/integrationtests/test-denom-unoffered.ts
@@ -130,6 +130,7 @@ export async function runDenomUnofferedTest(t: GlobalTestState) {
// Force updating the exchange entry so that the wallet knows about the new denominations.
await walletClient.call(WalletApiOperation.UpdateExchangeEntry, {
exchangeBaseUrl: exchange.baseUrl,
+ force: true,
});
await walletClient.call(WalletApiOperation.DeleteTransaction, {
diff --git a/packages/taler-util/src/MerchantApiClient.ts b/packages/taler-util/src/MerchantApiClient.ts
index db1ffef4e..8afacfa46 100644
--- a/packages/taler-util/src/MerchantApiClient.ts
+++ b/packages/taler-util/src/MerchantApiClient.ts
@@ -33,14 +33,9 @@ import {
MerchantOrderPrivateStatusResponse,
MerchantPostOrderRequest,
MerchantPostOrderResponse,
- MerchantReserveCreateConfirmation,
MerchantTemplateAddDetails,
- RewardCreateConfirmation,
- RewardCreateRequest,
- TippingReserveStatus,
codecForMerchantOrderPrivateStatusResponse,
codecForMerchantPostOrderResponse,
- codecForMerchantReserveCreateConfirmation,
} from "./merchant-api-types.js";
import {
FailCasesByMethod,
@@ -184,35 +179,6 @@ export class MerchantApiClient {
await expectSuccessResponseOrThrow(res);
}
- async deleteTippingReserve(req: DeleteTippingReserveArgs): Promise<void> {
- const url = new URL(`private/reserves/${req.reservePub}`, this.baseUrl);
- if (req.purge) {
- url.searchParams.set("purge", "YES");
- }
- const resp = await this.httpClient.fetch(url.href, {
- method: "DELETE",
- headers: this.makeAuthHeader(),
- });
- logger.info(`delete status: ${resp.status}`);
- return;
- }
-
- async createTippingReserve(
- req: CreateMerchantTippingReserveRequest,
- ): Promise<MerchantReserveCreateConfirmation> {
- const url = new URL("private/reserves", this.baseUrl);
- const resp = await this.httpClient.fetch(url.href, {
- method: "POST",
- body: req,
- headers: this.makeAuthHeader(),
- });
- const respData = readSuccessResponseJsonOrThrow(
- resp,
- codecForMerchantReserveCreateConfirmation(),
- );
- return respData;
- }
-
async getPrivateInstanceInfo(): Promise<any> {
const url = new URL("private", this.baseUrl);
const resp = await this.httpClient.fetch(url.href, {
@@ -222,16 +188,6 @@ export class MerchantApiClient {
return await resp.json();
}
- async getPrivateTipReserves(): Promise<TippingReserveStatus> {
- const url = new URL("private/reserves", this.baseUrl);
- const resp = await this.httpClient.fetch(url.href, {
- method: "GET",
- headers: this.makeAuthHeader(),
- });
- // FIXME: Validate!
- return await resp.json();
- }
-
async deleteInstance(instanceId: string) {
const url = new URL(`management/instances/${instanceId}`, this.baseUrl);
const resp = await this.httpClient.fetch(url.href, {
@@ -316,25 +272,6 @@ export class MerchantApiClient {
);
}
- async giveTip(req: RewardCreateRequest): Promise<RewardCreateConfirmation> {
- const reqUrl = new URL(`private/rewards`, this.baseUrl);
- const resp = await this.httpClient.fetch(reqUrl.href, {
- method: "POST",
- body: req,
- });
- // FIXME: validate
- return resp.json();
- }
-
- async queryTippingReserves(): Promise<TippingReserveStatus> {
- const reqUrl = new URL(`private/reserves`, this.baseUrl);
- const resp = await this.httpClient.fetch(reqUrl.href, {
- headers: this.makeAuthHeader(),
- });
- // FIXME: validate
- return resp.json();
- }
-
async giveRefund(r: {
instance: string;
orderId: string;
diff --git a/packages/taler-util/src/merchant-api-types.ts b/packages/taler-util/src/merchant-api-types.ts
index 724e99b55..838bfa99d 100644
--- a/packages/taler-util/src/merchant-api-types.ts
+++ b/packages/taler-util/src/merchant-api-types.ts
@@ -259,11 +259,6 @@ export interface TransactionWireReport {
coin_pub: CoinPublicKeyString;
}
-export interface TippingReserveStatus {
- // Array of all known reserves (possibly empty!)
- reserves: ReserveStatusEntry[];
-}
-
export interface ReserveStatusEntry {
// Public key of the reserve
reserve_pub: string;
@@ -291,33 +286,6 @@ export interface ReserveStatusEntry {
active: boolean;
}
-export interface RewardCreateConfirmation {
- // Unique tip identifier for the tip that was created.
- reward_id: string;
-
- // taler://tip URI for the tip
- taler_reward_uri: string;
-
- // URL that will directly trigger processing
- // the tip when the browser is redirected to it
- reward_status_url: string;
-
- // when does the reward expire
- reward_expiration: AbsoluteTime;
-}
-
-export interface RewardCreateRequest {
- // Amount that the customer should be tipped
- amount: AmountString;
-
- // Justification for giving the tip
- justification: string;
-
- // URL that the user should be directed to after tipping,
- // will be included in the tip_token.
- next_url: string;
-}
-
export interface MerchantInstancesResponse {
// List of instances that are present in the backend (see Instance)
instances: MerchantInstanceDetail[];