aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-harness
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-01-30 22:25:54 +0100
committerFlorian Dold <florian@dold.me>2024-01-30 22:25:54 +0100
commitc5f97c8f493b52f9e083548d0ac71592c56a2b79 (patch)
treed45ed40257d77880157a61919140d6e972bc60f1 /packages/taler-harness
parentd4429ff5acac01c5a7ef32efa3b3f2402627a71a (diff)
downloadwallet-core-c5f97c8f493b52f9e083548d0ac71592c56a2b79.tar.xz
harness: work on otp test
Diffstat (limited to 'packages/taler-harness')
-rw-r--r--packages/taler-harness/src/integrationtests/test-otp.ts77
-rw-r--r--packages/taler-harness/src/integrationtests/test-payment-template.ts6
2 files changed, 79 insertions, 4 deletions
diff --git a/packages/taler-harness/src/integrationtests/test-otp.ts b/packages/taler-harness/src/integrationtests/test-otp.ts
index dd6c45e4c..d4dee12ad 100644
--- a/packages/taler-harness/src/integrationtests/test-otp.ts
+++ b/packages/taler-harness/src/integrationtests/test-otp.ts
@@ -17,14 +17,22 @@
/**
* Imports.
*/
+import {
+ ConfirmPayResultType,
+ Duration,
+ MerchantApiClient,
+ PreparePayResultType,
+ encodeCrock,
+ getRandomBytes,
+ j2s,
+ narrowOpSuccessOrThrow,
+} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { GlobalTestState } from "../harness/harness.js";
import {
createSimpleTestkudosEnvironmentV2,
withdrawViaBankV2,
- makeTestPaymentV2,
} from "../harness/helpers.js";
-import { MerchantApiClient, j2s } from "@gnu-taler/taler-util";
/**
* Run test for basic, bank-integrated withdrawal and payment.
@@ -36,6 +44,71 @@ export async function runOtpTest(t: GlobalTestState) {
await createSimpleTestkudosEnvironmentV2(t);
const merchantClient = new MerchantApiClient(merchant.makeInstanceBaseUrl());
+ const createOtpRes = await merchantClient.createOtpDevice({
+ otp_algorithm: 1,
+ otp_device_description: "Hello",
+ otp_device_id: "mydevice",
+ otp_key: encodeCrock(getRandomBytes(16)),
+ });
+ narrowOpSuccessOrThrow(createOtpRes);
+
+ const createTemplateRes = await merchantClient.createTemplate({
+ template_description: "my template",
+ template_id: "tpl1",
+ otp_id: "mydevice",
+ template_contract: {
+ summary: "test",
+ amount: "TESTKUDOS:1",
+ minimum_age: 0,
+ pay_duration: Duration.toTalerProtocolDuration(
+ Duration.fromSpec({ hours: 1 }),
+ ),
+ },
+ });
+ narrowOpSuccessOrThrow(createTemplateRes);
+
+ const getTemplateResp = await merchantClient.getTemplate("tpl1");
+ narrowOpSuccessOrThrow(getTemplateResp);
+ console.log(`template: ${j2s(getTemplateResp.body)}`);
+
+ const wres = await withdrawViaBankV2(t, {
+ walletClient,
+ bank,
+ exchange,
+ amount: "TESTKUDOS:20",
+ });
+ await wres.withdrawalFinishedCond;
+
+ const preparePayResult = await walletClient.call(
+ WalletApiOperation.PreparePayForTemplate,
+ {
+ talerPayTemplateUri: `taler+http://pay-template/localhost:${merchant.port}/tpl1`,
+ templateParams: {},
+ },
+ );
+
+ console.log(preparePayResult);
+
+ t.assertTrue(
+ preparePayResult.status === PreparePayResultType.PaymentPossible,
+ );
+
+ // Pay for it
+
+ const r2 = await walletClient.call(WalletApiOperation.ConfirmPay, {
+ transactionId: preparePayResult.transactionId,
+ });
+
+ t.assertTrue(r2.type === ConfirmPayResultType.Done);
+
+ const transaction = await walletClient.call(
+ WalletApiOperation.GetTransactionById,
+ {
+ transactionId: preparePayResult.transactionId,
+ },
+ );
+
+ console.log(j2s(transaction));
}
runOtpTest.suites = ["wallet"];
diff --git a/packages/taler-harness/src/integrationtests/test-payment-template.ts b/packages/taler-harness/src/integrationtests/test-payment-template.ts
index e77236a9a..c9f1caacd 100644
--- a/packages/taler-harness/src/integrationtests/test-payment-template.ts
+++ b/packages/taler-harness/src/integrationtests/test-payment-template.ts
@@ -22,6 +22,7 @@ import {
Duration,
MerchantApiClient,
PreparePayResultType,
+ narrowOpSuccessOrThrow,
} from "@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { GlobalTestState } from "../harness/harness.js";
@@ -41,7 +42,7 @@ export async function runPaymentTemplateTest(t: GlobalTestState) {
const merchantClient = new MerchantApiClient(merchant.makeInstanceBaseUrl());
- await merchantClient.createTemplate({
+ const createTemplateRes = await merchantClient.createTemplate({
template_id: "template1",
template_description: "my test template",
template_contract: {
@@ -54,6 +55,7 @@ export async function runPaymentTemplateTest(t: GlobalTestState) {
summary: "hello, I'm a summary",
},
});
+ narrowOpSuccessOrThrow(createTemplateRes);
// Withdraw digital cash into the wallet.
@@ -84,7 +86,7 @@ export async function runPaymentTemplateTest(t: GlobalTestState) {
// Pay for it
const r2 = await walletClient.call(WalletApiOperation.ConfirmPay, {
- proposalId: preparePayResult.proposalId,
+ transactionId: preparePayResult.transactionId,
});
t.assertTrue(r2.type === ConfirmPayResultType.Done);