mirror of
https://github.com/hanzo-fi/numscript.git
synced 2026-10-30 20:54:52 +00:00
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package cmd_test
|
|
|
|
import (
|
|
"math/big"
|
|
"testing"
|
|
|
|
"github.com/hanzo-fi/numscript/internal/cmd"
|
|
"github.com/hanzo-fi/numscript/internal/interpreter"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMakeSpecsFileRetryForMissingFunds(t *testing.T) {
|
|
out, err := cmd.MakeSpecsFile(`
|
|
send [USD/2 10000] (
|
|
source = @alice
|
|
destination = @bob
|
|
)
|
|
`)
|
|
|
|
require.Nil(t, err)
|
|
require.Equal(t, interpreter.Balances{
|
|
{Account: "alice", Asset: "USD/2", Amount: big.NewInt(10000)},
|
|
}, out.Balances)
|
|
}
|
|
|
|
func TestMakeSpecsFileFundsScopedBalance(t *testing.T) {
|
|
out, err := cmd.MakeSpecsFile(`
|
|
send [USD/2 10000] (
|
|
source = scoped(@alice, "reserve")
|
|
destination = @bob
|
|
)
|
|
`)
|
|
|
|
require.Nil(t, err)
|
|
require.Equal(t, interpreter.Balances{
|
|
{Account: "alice", Asset: "USD/2", Scope: "reserve", Amount: big.NewInt(10000)},
|
|
}, out.Balances)
|
|
}
|
|
|
|
func TestUnusedVars(t *testing.T) {
|
|
out, err := cmd.MakeSpecsFile(`
|
|
vars { monetary $m }
|
|
`)
|
|
|
|
require.Nil(t, err)
|
|
require.Equal(t, interpreter.VariablesMap{"m": "USD/2 100"}, out.Vars)
|
|
}
|
|
|
|
func TestMakeSpecsFileRetryForMissingFeatureFlags(t *testing.T) {
|
|
out, err := cmd.MakeSpecsFile(`
|
|
send [USD/2 10000] (
|
|
source = oneof { @world }
|
|
destination = @bob
|
|
)
|
|
`)
|
|
|
|
require.Nil(t, err)
|
|
require.Equal(t, []string{"experimental-oneof"}, out.FeatureFlags)
|
|
}
|