move api/server to api/edge/bff
This commit is contained in:
93
api/edge/bff/internal/server/walletapiimp/routing_test.go
Normal file
93
api/edge/bff/internal/server/walletapiimp/routing_test.go
Normal file
@@ -0,0 +1,93 @@
|
||||
package walletapiimp
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/tech/sendico/pkg/discovery"
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
)
|
||||
|
||||
func TestFindGatewayForRoute_PrefersGatewayID(t *testing.T) {
|
||||
gateways := []discovery.GatewaySummary{
|
||||
{
|
||||
ID: "gw-fallback",
|
||||
Rail: "CRYPTO",
|
||||
Healthy: true,
|
||||
InvokeURI: "chain-gw:50070",
|
||||
Network: "ethereum_mainnet",
|
||||
},
|
||||
{
|
||||
ID: "gw-route",
|
||||
Rail: "CRYPTO",
|
||||
Healthy: true,
|
||||
InvokeURI: "tron-gw:50071",
|
||||
Network: "tron_mainnet",
|
||||
},
|
||||
}
|
||||
|
||||
route := &model.ChainWalletRoute{
|
||||
WalletRef: "wallet-1",
|
||||
Network: "ethereum_mainnet",
|
||||
GatewayID: "gw-route",
|
||||
}
|
||||
|
||||
selected := findGatewayForRoute(gateways, route)
|
||||
if selected == nil {
|
||||
t.Fatal("expected selected gateway")
|
||||
}
|
||||
if selected.ID != "gw-route" {
|
||||
t.Fatalf("expected gw-route, got %q", selected.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFindGatewayForRoute_FallsBackToNetwork(t *testing.T) {
|
||||
gateways := []discovery.GatewaySummary{
|
||||
{
|
||||
ID: "gw-chain",
|
||||
Rail: "CRYPTO",
|
||||
Healthy: true,
|
||||
InvokeURI: "chain-gw:50070",
|
||||
Network: "ethereum_mainnet",
|
||||
},
|
||||
{
|
||||
ID: "gw-tron",
|
||||
Rail: "CRYPTO",
|
||||
Healthy: true,
|
||||
InvokeURI: "tron-gw:50071",
|
||||
Network: "tron_mainnet",
|
||||
},
|
||||
}
|
||||
|
||||
route := &model.ChainWalletRoute{
|
||||
WalletRef: "wallet-1",
|
||||
Network: "tron_mainnet",
|
||||
GatewayID: "unknown",
|
||||
}
|
||||
|
||||
selected := findGatewayForRoute(gateways, route)
|
||||
if selected == nil {
|
||||
t.Fatal("expected selected gateway")
|
||||
}
|
||||
if selected.ID != "gw-tron" {
|
||||
t.Fatalf("expected gw-tron, got %q", selected.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestNormalizeNetworkName(t *testing.T) {
|
||||
tests := []struct {
|
||||
in string
|
||||
want string
|
||||
}{
|
||||
{in: "CHAIN_NETWORK_TRON_MAINNET", want: "tron_mainnet"},
|
||||
{in: "tron_mainnet-USDT", want: "tron_mainnet"},
|
||||
{in: " ethereum_mainnet ", want: "ethereum_mainnet"},
|
||||
{in: "", want: ""},
|
||||
}
|
||||
|
||||
for _, tc := range tests {
|
||||
got := normalizeNetworkName(tc.in)
|
||||
if got != tc.want {
|
||||
t.Fatalf("normalizeNetworkName(%q) = %q, want %q", tc.in, got, tc.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user