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:
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, {