package configtest import ( "crypto/rand" "os" "path" "testing" "github.com/stretchr/testify/require" ) type MarshalFunc = func(any) ([]byte, error) type ConfigFile struct { filename string content map[string]any marshal func(any) ([]byte, error) } type DummyFile struct { filename string size int } func NewConfigFile(filename string, content map[string]any, marshal MarshalFunc) ConfigFile { return ConfigFile{ filename: filename, content: content, marshal: marshal, } } func NewDummyFile(filename string, size int) DummyFile { return DummyFile{ filename: filename, size: size, } } func PrepareConfigFiles(t *testing.T, dir string, files []ConfigFile) { for _, file := range files { data, err := file.marshal(file.content) require.NoError(t, err) err = os.WriteFile(path.Join(dir, file.filename), data, 0o600) require.NoError(t, err) } } func PrepareDummyFiles(t *testing.T, dir string, files []DummyFile) { for _, file := range files { data := make([]byte, file.size) _, _ = rand.Read(data) err := os.WriteFile(path.Join(dir, file.filename), data, 0o600) require.NoError(t, err) } }