diff options
author | Florian Dold <florian@dold.me> | 2021-08-06 18:51:37 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-08-06 18:51:37 +0200 |
commit | 20ffa834d8e1b135b308e27d2b655e6868ce1872 (patch) | |
tree | 6a5833467167e600267858203751b1ff9189a512 /packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts | |
parent | 5e69745072b6040fa186422c3ab6c303dabbae21 (diff) | |
download | wallet-core-20ffa834d8e1b135b308e27d2b655e6868ce1872.tar.xz |
tag test properly
Diffstat (limited to 'packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts')
-rw-r--r-- | packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts b/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts index d91787637..6516327c2 100644 --- a/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts +++ b/packages/taler-wallet-cli/src/integrationtests/test-merchant-longpolling.ts @@ -23,7 +23,7 @@ import { PreparePayResultType, codecForMerchantOrderStatusUnpaid, ConfirmPayResultType, - URL + URL, } from "@gnu-taler/taler-util"; import axios from "axios"; import { WalletApiOperation } from "@gnu-taler/taler-wallet-core"; @@ -60,10 +60,9 @@ export async function runMerchantLongpollingTest(t: GlobalTestState) { amount: "TESTKUDOS:5", fulfillment_url: "https://example.com/article42", }, + create_token: false, }); - const firstOrderId = orderResp.order_id; - let orderStatus = await MerchantPrivateApi.queryPrivateOrderStatus(merchant, { orderId: orderResp.order_id, sessionId: "mysession-one", @@ -74,16 +73,31 @@ export async function runMerchantLongpollingTest(t: GlobalTestState) { t.assertTrue(orderStatus.already_paid_order_id === undefined); let publicOrderStatusUrl = new URL(orderStatus.order_status_url); - // Wait for half a second seconds! + // First, request order status without longpolling + { + console.log("requesting", publicOrderStatusUrl.href); + let publicOrderStatusResp = await axios.get(publicOrderStatusUrl.href, { + validateStatus: () => true, + }); + + if (publicOrderStatusResp.status != 402) { + throw Error( + `expected status 402 (before claiming, no long polling), but got ${publicOrderStatusResp.status}`, + ); + } + } + + // Now do long-polling for half a second! publicOrderStatusUrl.searchParams.set("timeout_ms", "500"); + console.log("requesting", publicOrderStatusUrl.href); let publicOrderStatusResp = await axios.get(publicOrderStatusUrl.href, { validateStatus: () => true, }); if (publicOrderStatusResp.status != 402) { throw Error( - `expected status 402 (before claiming), but got ${publicOrderStatusResp.status}`, + `expected status 402 (before claiming, with long-polling), but got ${publicOrderStatusResp.status}`, ); } @@ -99,12 +113,6 @@ export async function runMerchantLongpollingTest(t: GlobalTestState) { * ========================================================================= */ - publicOrderStatusUrl.searchParams.set("timeout_ms", "5000"); - - let publicOrderStatusPromise = axios.get(publicOrderStatusUrl.href, { - validateStatus: () => true, - }); - let preparePayResp = await wallet.client.call( WalletApiOperation.PreparePayForUri, { @@ -114,6 +122,18 @@ export async function runMerchantLongpollingTest(t: GlobalTestState) { t.assertTrue(preparePayResp.status === PreparePayResultType.PaymentPossible); + publicOrderStatusUrl.searchParams.set("timeout_ms", "5000"); + publicOrderStatusUrl.searchParams.set( + "h_contract", + preparePayResp.contractTermsHash, + ); + + let publicOrderStatusPromise = axios.get(publicOrderStatusUrl.href, { + validateStatus: () => true, + }); + + t.assertTrue(preparePayResp.status === PreparePayResultType.PaymentPossible); + const proposalId = preparePayResp.proposalId; publicOrderStatusResp = await publicOrderStatusPromise; @@ -137,3 +157,5 @@ export async function runMerchantLongpollingTest(t: GlobalTestState) { t.assertTrue(confirmPayRes.type === ConfirmPayResultType.Done); } + +runMerchantLongpollingTest.suites = ["merchant"]; |