taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit c2b8c6170d2262fe325e1c2b6b5a95ca63d2b149
parent fa6fc9c71023944675d98682935d726061209569
Author: Florian Dold <florian@dold.me>
Date:   Wed, 10 Jun 2026 12:24:26 +0200

harness: check for instance name in self-provisioning MFA message

Diffstat:
Mpackages/taler-harness/src/harness/tan-helper.ts | 8++++++--
Mpackages/taler-harness/src/index.ts | 1+
Mpackages/taler-harness/src/integrationtests/test-merchant-self-provision-activation.ts | 9+++++++--
3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/packages/taler-harness/src/harness/tan-helper.ts b/packages/taler-harness/src/harness/tan-helper.ts @@ -30,7 +30,7 @@ const logger = new Logger("tan-helper.ts"); export async function wait2FaCode( path: string, -): Promise<{ address: string; code: string }> { +): Promise<{ address: string; code: string; message: string }> { while (true) { if (!fs.existsSync(path)) { logger.info(`waiting for 2fa code at ${path}`); @@ -38,7 +38,11 @@ export async function wait2FaCode( continue; } const res = JSON.parse(fs.readFileSync(path, "utf-8")); - if (typeof res.address != "string" || typeof res.code != "string") { + if ( + typeof res.address != "string" || + typeof res.code != "string" || + typeof res.message != "string" + ) { throw Error("bad format"); } return res; diff --git a/packages/taler-harness/src/index.ts b/packages/taler-harness/src/index.ts @@ -1902,6 +1902,7 @@ talerHarnessCli JSON.stringify({ address, code, + message: input, }), ); }); diff --git a/packages/taler-harness/src/integrationtests/test-merchant-self-provision-activation.ts b/packages/taler-harness/src/integrationtests/test-merchant-self-provision-activation.ts @@ -49,8 +49,8 @@ export async function runMerchantSelfProvisionActivationTest( // Set up test environment const instanceInfo = { - id: "self-instance", - name: "My instance", + id: "my-awesome-instance", + name: "My awesome instance", auth: { method: MerchantAuthMethod.TOKEN, password: "123", @@ -125,6 +125,11 @@ export async function runMerchantSelfProvisionActivationTest( await merchantClient.sendChallenge(firstChallenge.challenge_id), ); const res = await wait2FaCode(mfaConfig.email.path); + console.log(`MFA message: ${res.message}`); + const loginMatch = res.message.match(/^Login: (.*)$/m); + const login = loginMatch?.[1]; + console.log(`login account: ${login}`); + t.assertDeepEqual(login, instanceInfo.id); t.assertDeepEqual(res.address, instanceInfo.email); succeedOrThrow( await merchantClient.confirmChallenge(firstChallenge.challenge_id, {