taler-rust

GNU Taler code in Rust. Largely core banking integrations.
Log | Files | Refs | Submodules | README | LICENSE

commit b0ed224ea47e84849faaa10ee7f971b1d554f1df
parent 4c21931f9204c9c634c046f074a379f8abf03896
Author: Antoine A <>
Date:   Tue, 29 Sep 2026 19:27:54 +0200

common: stricter routine tests

Diffstat:
Madapters/taler-cyclos/db/cyclos-procedures.sql | 2+-
Madapters/taler-magnet-bank/db/magnet-bank-procedures.sql | 2+-
Mcommon/taler-api/db/taler-api-procedures.sql | 2+-
Mcommon/taler-test-utils/src/routine.rs | 27++++++++++++++++++++++-----
4 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/adapters/taler-cyclos/db/cyclos-procedures.sql b/adapters/taler-cyclos/db/cyclos-procedures.sql @@ -304,7 +304,7 @@ SELECT (amount != in_amount OR credit_account != in_credit_account OR exchange_base_url != in_exchange_base_url OR wtid != in_wtid - OR metadata != in_metadata) + OR metadata IS DISTINCT FROM in_metadata) ,initiated_id, initiated_at INTO out_request_uid_reuse, out_initiated_row_id, out_initiated_at FROM transfer JOIN initiated USING (initiated_id) diff --git a/adapters/taler-magnet-bank/db/magnet-bank-procedures.sql b/adapters/taler-magnet-bank/db/magnet-bank-procedures.sql @@ -294,7 +294,7 @@ SELECT (amount != in_amount OR credit_account != in_credit_account OR exchange_base_url != in_exchange_base_url OR wtid != in_wtid - OR metadata != in_metadata) + OR metadata IS DISTINCT FROM in_metadata) ,initiated_id, initiated_at INTO out_request_uid_reuse, out_initiated_row_id, out_initiated_at FROM transfer JOIN initiated USING (initiated_id) diff --git a/common/taler-api/db/taler-api-procedures.sql b/common/taler-api/db/taler-api-procedures.sql @@ -63,7 +63,7 @@ SELECT (amount != in_amount OR credit_payto != in_credit_payto OR exchange_base_url != in_exchange_base_url OR wtid != in_wtid - OR metadata != in_metadata) + OR metadata IS DISTINCT FROM in_metadata) ,transfer_id, created_at INTO out_request_uid_reuse, out_transfer_row_id, out_created_at FROM transfer diff --git a/common/taler-test-utils/src/routine.rs b/common/taler-test-utils/src/routine.rs @@ -417,13 +417,30 @@ pub async fn transfer_routine( // Simple routine(&req).await; // With metadata - routine(&TransferRequest { + wire_gateway + .post("/transfer") + .json(&TransferRequest { + metadata: Some("changed".into()), + ..req.clone() + }) + .await + .assert_error(ErrorCode::BANK_TRANSFER_REQUEST_UID_REUSED); + + let metadata_req = TransferRequest { request_uid: HashCode::rand(), wtid: ShortHashCode::rand(), - metadata: Some("test:medatata".into()), - ..req - }) - .await; + metadata: Some("test:metadata".into()), + ..req.clone() + }; + routine(&metadata_req).await; + wire_gateway + .post("/transfer") + .json(&TransferRequest { + metadata: None, + ..metadata_req + }) + .await + .assert_error(ErrorCode::BANK_TRANSFER_REQUEST_UID_REUSED); // Check create transfer errors {