Fix InitWithReset - rely on previously updated flags (#7598)

* Fix initWithReset to use previously set configuration

* further cleanup

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
This commit is contained in:
Victor Farazdagi 2020-10-22 08:20:56 +03:00 committed by GitHub
parent b4c1c1db9b
commit 483f7f8177
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 1 deletions

View File

@ -94,8 +94,14 @@ func Init(c *Flags) {
// InitWithReset sets the global config and returns function that is used to reset configuration. // InitWithReset sets the global config and returns function that is used to reset configuration.
func InitWithReset(c *Flags) func() { func InitWithReset(c *Flags) func() {
var prevConfig Flags
if featureConfig != nil {
prevConfig = *featureConfig
} else {
prevConfig = Flags{}
}
resetFunc := func() { resetFunc := func() {
Init(&Flags{}) Init(&prevConfig)
} }
Init(c) Init(c)
return resetFunc return resetFunc

View File

@ -9,6 +9,7 @@ import (
) )
func TestInitFeatureConfig(t *testing.T) { func TestInitFeatureConfig(t *testing.T) {
defer Init(&Flags{})
cfg := &Flags{ cfg := &Flags{
MedallaTestnet: true, MedallaTestnet: true,
} }
@ -21,6 +22,27 @@ func TestInitFeatureConfig(t *testing.T) {
Init(cfg) Init(cfg)
} }
func TestInitWithReset(t *testing.T) {
defer Init(&Flags{})
Init(&Flags{
OnyxTestnet: true,
})
assert.Equal(t, false, Get().AltonaTestnet)
assert.Equal(t, true, Get().OnyxTestnet)
// Overwrite previously set value (value that didn't come by default).
resetCfg := InitWithReset(&Flags{
OnyxTestnet: false,
})
assert.Equal(t, false, Get().AltonaTestnet)
assert.Equal(t, false, Get().OnyxTestnet)
// Reset must get to previously set configuration (not to default config values).
resetCfg()
assert.Equal(t, false, Get().AltonaTestnet)
assert.Equal(t, true, Get().OnyxTestnet)
}
func TestConfigureBeaconConfig(t *testing.T) { func TestConfigureBeaconConfig(t *testing.T) {
app := cli.App{} app := cli.App{}
set := flag.NewFlagSet("test", 0) set := flag.NewFlagSet("test", 0)