Files
crypto-price-bot/internal/data/market/pairs_test.go
T
codex e173fd7799
Build Docker Image / build (amd64) (push) Successful in 1m25s
fix: restore canonical token lookup for market caches
2026-06-08 07:17:14 +07:00

65 lines
1.8 KiB
Go

package market
import "testing"
func TestSelectCanonicalSymbolByQuotePriority(t *testing.T) {
pairs := []string{"DOGEFDUSD", "DOGEUSDC", "DOGEUSDT"}
got := selectCanonicalSymbolByQuotePriority("DOGE", pairs)
if got != "DOGEUSDT" {
t.Fatalf("expected DOGEUSDT, got %q", got)
}
}
func TestSelectCanonicalSymbolByQuotePriority_FallbackOrder(t *testing.T) {
pairs := []string{"DOGEFDUSD", "DOGEUSDC"}
got := selectCanonicalSymbolByQuotePriority("DOGE", pairs)
if got != "DOGEUSDC" {
t.Fatalf("expected DOGEUSDC, got %q", got)
}
}
func TestSelectCanonicalSymbolByQuotePriority_NoPreferredQuote(t *testing.T) {
pairs := []string{"DOGEBUSD"}
got := selectCanonicalSymbolByQuotePriority("DOGE", pairs)
if got != "DOGEBUSD" {
t.Fatalf("expected DOGEBUSD, got %q", got)
}
}
func TestSelectCanonicalFutureSymbol_PrefersPrefixThenQuote(t *testing.T) {
pairs := []string{"PEPEUSDC", "PEPEUSDT", "1000PEPEUSDC", "1000PEPEUSDT"}
got := selectCanonicalFutureSymbol("PEPE", pairs)
if got != "1000PEPEUSDT" {
t.Fatalf("expected 1000PEPEUSDT, got %q", got)
}
}
func TestSelectCanonicalFutureSymbol_UsesQuoteAbbreviation(t *testing.T) {
pairs := []string{"PEPEUSDC"}
got := selectCanonicalFutureSymbol("PEPEC", pairs)
if got != "PEPEUSDC" {
t.Fatalf("expected PEPEUSDC, got %q", got)
}
}
func TestTokenKeyFromSymbol_PreservesUnmappedFutureToken(t *testing.T) {
got := tokenKeyFromSymbol("LUNA2USDT")
if got != "LUNA2" {
t.Fatalf("expected LUNA2, got %q", got)
}
}
func TestTokenKeyFromSymbol_StripsKnownPrefix(t *testing.T) {
got := tokenKeyFromSymbol("1000PEPEUSDT")
if got != "PEPE" {
t.Fatalf("expected PEPE, got %q", got)
}
}
func TestTokenKeyFromSymbol_UsesQuoteAbbreviation(t *testing.T) {
got := tokenKeyFromSymbol("PEPEUSDC")
if got != "PEPEC" {
t.Fatalf("expected PEPEC, got %q", got)
}
}