commit 442edb9d68821f81e0f3a4067dda7ceb24fcd072
parent 9cb63331da2cf54bac54cd5ef98763e2d31e5e27
Author: Sebastian <sebasjm@taler-systems.com>
Date: Wed, 8 Apr 2026 09:15:08 -0300
add unit test for case sensitive
Diffstat:
2 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/packages/taler-util/src/taleruri.test.ts b/packages/taler-util/src/taleruri.test.ts
@@ -376,6 +376,21 @@ import { AmountString } from "./types-taler-common.js";
t.deepEqual(r1.templateId, "FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY");
});
+ test("taler pay template URI (parsing, case-sensitive)", (t) => {
+ const url1 =
+ "taler://pay-template/merchant.example.com/InstanceName/FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY";
+ const r1 = parsePayTemplateUri(url1);
+ if (!r1) {
+ t.fail();
+ return;
+ }
+ t.deepEqual(
+ r1.merchantBaseUrl,
+ "https://merchant.example.com/InstanceName/" as HostPortPath,
+ );
+ t.deepEqual(r1.templateId, "FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY");
+ });
+
test("taler pay template URI (parsing, http with port)", (t) => {
const url1 =
"taler+http://pay-template/merchant.example.com:1234/FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY";
@@ -402,6 +417,17 @@ import { AmountString } from "./types-taler-common.js";
);
});
+ test("taler pay template URI (stringify, case-sensitive)", (t) => {
+ const url1 = stringifyPayTemplateUri({
+ merchantBaseUrl: "http://merchant.example.com:1234/InstanceName/" as HostPortPath,
+ templateId: "FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY",
+ });
+ t.deepEqual(
+ url1,
+ "taler+http://pay-template/merchant.example.com:1234/InstanceName/FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY",
+ );
+ });
+
/**
* 5.10 action: restore https://lsd.gnunet.org/lsd0006/#name-action-restore
*/
diff --git a/packages/taler-util/src/taleruris.test.ts b/packages/taler-util/src/taleruris.test.ts
@@ -359,6 +359,23 @@ test("taler-new pay template URI (parsing)", (t) => {
t.deepEqual(r1.templateId, "FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY");
});
+test("taler-new pay template URI (parsing, case-sensitive)", (t) => {
+ const url1 =
+ "taler://pay-template/merchant.example.com/InstaceName/FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY";
+ // const r1 = parsePayTemplateUri(url1);
+ const r1 = Result.unpack(TalerUris.fromString(url1));
+
+ if (r1.type !== TalerUriAction.PayTemplate) {
+ t.fail();
+ return;
+ }
+ t.deepEqual(
+ r1.merchantBaseUrl,
+ "https://merchant.example.com/InstaceName/" as HostPortPath,
+ );
+ t.deepEqual(r1.templateId, "FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY");
+});
+
test("taler-new pay template URI (parsing, http with port)", (t) => {
const url1 =
"taler+http://pay-template/merchant.example.com:1234/FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY";
@@ -386,6 +403,18 @@ test("taler-new pay template URI (stringify)", (t) => {
);
});
+test("taler-new pay template URI (stringify, case-sensitive)", (t) => {
+ const url1 = TalerUris.toString({
+ type: TalerUriAction.PayTemplate,
+ merchantBaseUrl: "http://merchant.example.com:1234/InstanceName/" as HostPortPath,
+ templateId: "FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY",
+ });
+ t.deepEqual(
+ url1,
+ "taler+http://pay-template/merchant.example.com:1234/InstanceName/FEGHYJY48FEGU6WETYIOIDEDE2QW3OCZVY",
+ );
+});
+
/**
* 5.10 action: restore https://lsd.gnunet.org/lsd0006/#name-action-restore
*/