go-ethereum/internal/cli/flagset/flagset_test.go
Pratik Patil 3df1d6f017
Change diverged flags back to Geth's convention (POS-602) (#451)
* changed name -> identity

* changed no-snapshot -> snapchot=true/false

* changed jsonrpc.corsdomain -> http.corsdomain

* changed jsonrpc.vhosts -> http.vhosts

* changed http/ws.modules to http/ws.api

* updated readme

* updated config_test

* make docs

* handelling string array flag, overwrite insted of append

* added 'Default' to SliceStringFlag

* added separate flags for corsdomain and vhosts for http, ws, graphql

* modified tests
2022-07-14 22:36:18 +05:30

63 lines
1.2 KiB
Go

package flagset
import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestFlagsetBool(t *testing.T) {
f := NewFlagSet("")
value := false
f.BoolFlag(&BoolFlag{
Name: "flag",
Value: &value,
})
assert.NoError(t, f.Parse([]string{"--flag", "true"}))
assert.Equal(t, value, true)
}
func TestFlagsetSliceString(t *testing.T) {
f := NewFlagSet("")
value := []string{"a", "b", "c"}
f.SliceStringFlag(&SliceStringFlag{
Name: "flag",
Value: &value,
Default: value,
})
assert.NoError(t, f.Parse([]string{}))
assert.Equal(t, value, []string{"a", "b", "c"})
assert.NoError(t, f.Parse([]string{"--flag", "a,b"}))
assert.Equal(t, value, []string{"a", "b"})
}
func TestFlagsetDuration(t *testing.T) {
f := NewFlagSet("")
value := time.Duration(0)
f.DurationFlag(&DurationFlag{
Name: "flag",
Value: &value,
})
assert.NoError(t, f.Parse([]string{"--flag", "1m"}))
assert.Equal(t, value, 1*time.Minute)
}
func TestFlagsetMapString(t *testing.T) {
f := NewFlagSet("")
value := map[string]string{}
f.MapStringFlag(&MapStringFlag{
Name: "flag",
Value: &value,
})
assert.NoError(t, f.Parse([]string{"--flag", "a=b,c=d"}))
assert.Equal(t, value, map[string]string{"a": "b", "c": "d"})
}