From eca3819bcdf8f2a715c1f5e212ab4d81e3bbfd45 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Thu, 16 Feb 2023 13:54:19 +0100 Subject: taler-util: node http fixes --- packages/taler-harness/src/harness/harness.ts | 19 +++++++++++++++++-- .../taler-harness/src/integrationtests/test-kyc.ts | 12 ++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) (limited to 'packages/taler-harness') diff --git a/packages/taler-harness/src/harness/harness.ts b/packages/taler-harness/src/harness/harness.ts index 518b98d82..81dabf348 100644 --- a/packages/taler-harness/src/harness/harness.ts +++ b/packages/taler-harness/src/harness/harness.ts @@ -1895,8 +1895,23 @@ export async function runTestWithState( process.on("SIGINT", handleSignal); process.on("SIGTERM", handleSignal); - process.on("unhandledRejection", handleSignal); - process.on("uncaughtException", handleSignal); + + process.on("unhandledRejection", (reason: unknown, promise: any) => { + logger.warn( + `**** received unhandled rejection (${reason}), terminating test ${testName}`, + ); + logger.warn(`reason type: ${typeof reason}`); + gc.shutdownSync(); + process.exit(1); + }); + process.on("uncaughtException", (error, origin) => { + logger.warn( + `**** received uncaught exception (${error}), terminating test ${testName}`, + ); + console.warn("stack", error.stack); + gc.shutdownSync(); + process.exit(1); + }); try { logger.info("running test in directory", gc.testDir); diff --git a/packages/taler-harness/src/integrationtests/test-kyc.ts b/packages/taler-harness/src/integrationtests/test-kyc.ts index 915c3d470..bb40d9274 100644 --- a/packages/taler-harness/src/integrationtests/test-kyc.ts +++ b/packages/taler-harness/src/integrationtests/test-kyc.ts @@ -17,11 +17,7 @@ /** * Imports. */ -import { - Duration, - j2s, - NotificationType, -} from "@gnu-taler/taler-util"; +import { Duration, j2s, NotificationType } from "@gnu-taler/taler-util"; import { BankAccessApi, BankApi, @@ -232,7 +228,11 @@ async function runTestfakeKycService(): Promise { if (path === "/oauth/v2/login") { // Usually this would render some HTML page for the user to log in, // but we return JSON here. - const redirUri = new URL(qp.get("redirect_uri")!); + const redirUriUnparsed = qp.get("redirect_uri"); + if (!redirUriUnparsed) { + throw Error("missing redirect_url"); + } + const redirUri = new URL(redirUriUnparsed); redirUri.searchParams.set("code", "code_is_ok"); res.writeHead(200, { "Content-Type": "application/json" }); res.end( -- cgit v1.2.3