taler-typescript-core

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

commit 83ff7de59b8a00b313ecb00f4c6150a37c38902f
parent fc42d265b907973a04b607f81b61716931ca62d0
Author: Sebastian <sebasjm@gmail.com>
Date:   Sun,  4 Feb 2024 18:35:28 -0300

fix: reward URI parser and tests didn't take into account the last '/'

Diffstat:
Mpackages/taler-util/src/taleruri.test.ts | 4++--
Mpackages/taler-util/src/taleruri.ts | 5+++--
2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/packages/taler-util/src/taleruri.test.ts b/packages/taler-util/src/taleruri.test.ts @@ -237,7 +237,7 @@ test("taler reward pickup uri", (t) => { }); test("taler reward pickup uri with instance", (t) => { - const url1 = "taler://reward/merchant.example.com/instances/tipm/tipid"; + const url1 = "taler://reward/merchant.example.com/instances/tipm/tipid/"; const r1 = parseRewardUri(url1); if (!r1) { t.fail(); @@ -248,7 +248,7 @@ test("taler reward pickup uri with instance", (t) => { }); test("taler reward pickup uri with instance and prefix", (t) => { - const url1 = "taler://reward/merchant.example.com/my/pfx/tipm/tipid"; + const url1 = "taler://reward/merchant.example.com/my/pfx/tipm/tipid/"; const r1 = parseRewardUri(url1); if (!r1) { t.fail(); diff --git a/packages/taler-util/src/taleruri.ts b/packages/taler-util/src/taleruri.ts @@ -438,8 +438,9 @@ export function parseRewardUri(s: string): RewardUriResult | undefined { return undefined; } const host = parts[0].toLowerCase(); - const rewardId = parts[parts.length - 1]; - const pathSegments = parts.slice(1, parts.length - 1); + const unused = parts[parts.length - 1]; + const rewardId = parts[parts.length - 2]; + const pathSegments = parts.slice(1, parts.length - 2); const hostAndSegments = [host, ...pathSegments].join("/"); const merchantBaseUrl = canonicalizeBaseUrl( `${pi.innerProto}://${hostAndSegments}/`,