Bootstrap copied BFF and local accounts with public Sendico contracts (#34)

This commit is contained in:
Stephan D committed 2026-09-12 13:37:48 +02:00
1 parent 67dc5b5b1e
commit 7062672a87
556 files changed
+42291 -777

No files matched your search

+84
View File
@@ -0,0 +1,84 @@
package model
import (
"encoding/json"
"testing"
"go.mongodb.org/mongo-driver/v2/bson"
)
func TestCryptoAddressPaymentDataReadsAssetFromGenericDocument(t *testing.T) {
// The intermediate BSON document produced by PATCH decodes a nested asset
// as bson.D before the payment service record is encoded.
var payload any
if err := json.Unmarshal([]byte(`{"asset":{"chain":"tron_mainnet","token_symbol":"usdt"},"address":"TXabc","memo":"tag-1"}`), &payload); err != nil {
t.Fatalf("unmarshal payload: %v", err)
}
raw, err := bson.Marshal(payload)
if err != nil {
t.Fatalf("marshal payload: %v", err)
}
var data CryptoAddressPaymentData
if err := bson.Unmarshal(raw, &data); err != nil {
t.Fatalf("unmarshal crypto data: %v", err)
}
if got, want := string(data.Currency), "USDT"; got != want {
t.Fatalf("currency mismatch: got=%q want=%q", got, want)
}
if got, want := data.Network, "TRON_MAINNET"; got != want {
t.Fatalf("network mismatch: got=%q want=%q", got, want)
}
if got, want := data.Address, "TXabc"; got != want {
t.Fatalf("address mismatch: got=%q want=%q", got, want)
}
if got, want := strPtr(data.DestinationTag), "tag-1"; got != want {
t.Fatalf("destination tag mismatch: got=%q want=%q", got, want)
}
}
func TestCryptoAddressPaymentDataReadsAssetFromMapDocument(t *testing.T) {
raw, err := bson.Marshal(bson.M{
"asset": bson.M{"chain": "arbitrum_one", "tokenSymbol": "usdc"},
"address": "0xabc",
})
if err != nil {
t.Fatalf("marshal crypto data: %v", err)
}
var data CryptoAddressPaymentData
if err := bson.Unmarshal(raw, &data); err != nil {
t.Fatalf("unmarshal crypto data: %v", err)
}
if got, want := string(data.Currency), "USDC"; got != want {
t.Fatalf("currency mismatch: got=%q want=%q", got, want)
}
if got, want := data.Network, "ARBITRUM_ONE"; got != want {
t.Fatalf("network mismatch: got=%q want=%q", got, want)
}
}
func TestCryptoAddressPaymentDataReadsStoredFlatShape(t *testing.T) {
raw, err := bson.Marshal(CryptoAddressPaymentData{
Currency: "USDT",
Address: "TXabc",
Network: "TRON_MAINNET",
})
if err != nil {
t.Fatalf("marshal crypto data: %v", err)
}
var data CryptoAddressPaymentData
if err := bson.Unmarshal(raw, &data); err != nil {
t.Fatalf("unmarshal crypto data: %v", err)
}
if got, want := string(data.Currency), "USDT"; got != want {
t.Fatalf("currency mismatch: got=%q want=%q", got, want)
}
if got, want := data.Network, "TRON_MAINNET"; got != want {
t.Fatalf("network mismatch: got=%q want=%q", got, want)
}
}