Bootstrap copied BFF and local accounts with public Sendico contracts (#34)
This commit is contained in:
1 parent
67dc5b5b1e
commit
7062672a87
556 files changed
+42291
-777
No files matched your search
@@ -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)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user