github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/cfg/files_test.go (about) 1 package cfg 2 3 import ( 4 "flag" 5 "testing" 6 7 "github.com/grafana/dskit/flagext" 8 "github.com/stretchr/testify/require" 9 ) 10 11 type testCfg struct { 12 v int 13 } 14 15 func (cfg *testCfg) RegisterFlags(f *flag.FlagSet) { 16 cfg.v++ 17 } 18 19 func (cfg *testCfg) Clone() flagext.Registerer { 20 return func(cfg testCfg) flagext.Registerer { 21 return &cfg 22 }(*cfg) 23 } 24 25 func TestConfigFileLoaderDoesNotMutate(t *testing.T) { 26 cfg := &testCfg{} 27 err := ConfigFileLoader(nil, "something")(cfg) 28 require.Nil(t, err) 29 require.Equal(t, 0, cfg.v) 30 31 cfg.RegisterFlags(nil) 32 require.Equal(t, 1, cfg.v) 33 }