github.com/Finschia/finschia-sdk@v0.48.1/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  	"github.com/Finschia/finschia-sdk/store/types"
    10  )
    11  
    12  func TestGetPruningOptionsFromFlags(t *testing.T) {
    13  	tests := []struct {
    14  		name            string
    15  		initParams      func() *viper.Viper
    16  		expectedOptions types.PruningOptions
    17  		wantErr         bool
    18  	}{
    19  		{
    20  			name: FlagPruning,
    21  			initParams: func() *viper.Viper {
    22  				v := viper.New()
    23  				v.Set(FlagPruning, types.PruningOptionNothing)
    24  				return v
    25  			},
    26  			expectedOptions: types.PruneNothing,
    27  		},
    28  		{
    29  			name: "custom pruning options",
    30  			initParams: func() *viper.Viper {
    31  				v := viper.New()
    32  				v.Set(FlagPruning, types.PruningOptionCustom)
    33  				v.Set(FlagPruningKeepRecent, 1234)
    34  				v.Set(FlagPruningKeepEvery, 4321)
    35  				v.Set(FlagPruningInterval, 10)
    36  
    37  				return v
    38  			},
    39  			expectedOptions: types.PruningOptions{
    40  				KeepRecent: 1234,
    41  				KeepEvery:  4321,
    42  				Interval:   10,
    43  			},
    44  		},
    45  		{
    46  			name: types.PruningOptionDefault,
    47  			initParams: func() *viper.Viper {
    48  				v := viper.New()
    49  				v.Set(FlagPruning, types.PruningOptionDefault)
    50  				return v
    51  			},
    52  			expectedOptions: types.PruneDefault,
    53  		},
    54  	}
    55  
    56  	for _, tt := range tests {
    57  		tt := tt
    58  
    59  		t.Run(tt.name, func(j *testing.T) {
    60  			viper.Reset()
    61  			viper.SetDefault(FlagPruning, types.PruningOptionDefault)
    62  			v := tt.initParams()
    63  
    64  			opts, err := GetPruningOptionsFromFlags(v)
    65  			if tt.wantErr {
    66  				require.Error(t, err)
    67  				return
    68  			}
    69  
    70  			require.Equal(t, tt.expectedOptions, opts)
    71  		})
    72  	}
    73  }