package model import ( "errors" "testing" "git.sendico.io/tech/sxchnge/bff/pkg/merrors" "git.sendico.io/tech/sxchnge/bff/pkg/moneybase" "github.com/stretchr/testify/require" ) func TestMaxCurrencyScaleUsesSharedMoneyBaseRange(t *testing.T) { require.Equal(t, moneybase.MaxScale, MaxCurrencyScale) } func TestNormalizeExplicitCurrencyScalesNormalizesKeys(t *testing.T) { scales, err := NormalizeExplicitCurrencyScales(map[Currency]uint32{"usd": 2, "usdt": 6}) require.NoError(t, err) usd, err := CurrencyScale(scales, "USD") require.NoError(t, err) require.Equal(t, uint32(2), usd) usdt, err := CurrencyScale(scales, "USDT") require.NoError(t, err) require.Equal(t, uint32(6), usdt) } func TestCurrencyScaleRejectsUnconfiguredCurrency(t *testing.T) { _, err := CurrencyScale(map[Currency]uint32{"USD": 2}, "KWD") require.Error(t, err) require.True(t, errors.Is(err, merrors.ErrInvalidArg), "err=%v", err) } func TestNormalizeExplicitCurrencyScalesRejectsMissingScales(t *testing.T) { _, err := NormalizeExplicitCurrencyScales(nil) require.Error(t, err) require.True(t, errors.Is(err, merrors.ErrInvalidArg), "err=%v", err) }