commit b0ed224ea47e84849faaa10ee7f971b1d554f1df
parent 4c21931f9204c9c634c046f074a379f8abf03896
Author: Antoine A <>
Date: Tue, 29 Sep 2026 19:27:54 +0200
common: stricter routine tests
Diffstat:
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
{