github.com/cosmos/cosmos-sdk@v0.50.10/server/pruning_test.go (about) 1 package server 2 3 import ( 4 "testing" 5 6 "github.com/spf13/viper" 7 "github.com/stretchr/testify/require" 8 9 pruningtypes "cosmossdk.io/store/pruning/types" 10 ) 11 12 func TestGetPruningOptionsFromFlags(t *testing.T) { 13 tests := []struct { 14 name string 15 initParams func() *viper.Viper 16 expectedOptions pruningtypes.PruningOptions 17 wantErr bool 18 }{ 19 { 20 name: FlagPruning, 21 initParams: func() *viper.Viper { 22 v := viper.New() 23 v.Set(FlagPruning, pruningtypes.PruningOptionNothing) 24 return v 25 }, 26 expectedOptions: pruningtypes.NewPruningOptions(pruningtypes.PruningNothing), 27 }, 28 { 29 name: "custom pruning options", 30 initParams: func() *viper.Viper { 31 v := viper.New() 32 v.Set(FlagPruning, pruningtypes.PruningOptionCustom) 33 v.Set(FlagPruningKeepRecent, 1234) 34 v.Set(FlagPruningInterval, 10) 35 36 return v 37 }, 38 expectedOptions: pruningtypes.NewCustomPruningOptions(1234, 10), 39 }, 40 { 41 name: pruningtypes.PruningOptionDefault, 42 initParams: func() *viper.Viper { 43 v := viper.New() 44 v.Set(FlagPruning, pruningtypes.PruningOptionDefault) 45 return v 46 }, 47 expectedOptions: pruningtypes.NewPruningOptions(pruningtypes.PruningDefault), 48 }, 49 } 50 51 for _, tt := range tests { 52 tt := tt 53 54 t.Run(tt.name, func(j *testing.T) { 55 viper.Reset() 56 viper.SetDefault(FlagPruning, pruningtypes.PruningOptionDefault) 57 v := tt.initParams() 58 59 opts, err := GetPruningOptionsFromFlags(v) 60 if tt.wantErr { 61 require.Error(t, err) 62 return 63 } 64 65 require.Equal(t, tt.expectedOptions, opts) 66 }) 67 } 68 }