summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2024-02-04 18:35:28 -0300
committerSebastian <sebasjm@gmail.com>2024-02-05 09:18:21 -0300
commit83ff7de59b8a00b313ecb00f4c6150a37c38902f (patch)
tree1f4c46503b33b1d1de55c5efca50c728478ab2c8 /packages
parentfc42d265b907973a04b607f81b61716931ca62d0 (diff)
downloadwallet-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.ts4
-rw-r--r--packages/taler-util/src/taleruri.ts5
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}/`,