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  }