taler-typescript-core

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

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:
Mpackages/taler-util/src/taleruri.test.ts | 26++++++++++++++++++++++++++
Mpackages/taler-util/src/taleruris.test.ts | 29+++++++++++++++++++++++++++++
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 */