diff options
author | Sebastian <sebasjm@gmail.com> | 2024-02-04 18:35:28 -0300 |
---|---|---|
committer | Sebastian <sebasjm@gmail.com> | 2024-02-05 09:18:21 -0300 |
commit | 83ff7de59b8a00b313ecb00f4c6150a37c38902f (patch) | |
tree | 1f4c46503b33b1d1de55c5efca50c728478ab2c8 /packages | |
parent | fc42d265b907973a04b607f81b61716931ca62d0 (diff) | |
download | wallet-core-83ff7de59b8a00b313ecb00f4c6150a37c38902f.tar.gz wallet-core-83ff7de59b8a00b313ecb00f4c6150a37c38902f.tar.bz2 wallet-core-83ff7de59b8a00b313ecb00f4c6150a37c38902f.zip |
fix: reward URI parser and tests didn't take into account the last '/'
Diffstat (limited to 'packages')
-rw-r--r-- | packages/taler-util/src/taleruri.test.ts | 4 | ||||
-rw-r--r-- | packages/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 index 208beebbb..4ed97cec2 100644 --- 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 index 8f37dfe76..22846c7a4 100644 --- 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}/`, |