From 676d2eb16655bfb31f8886d1a554c99e423efc21 Mon Sep 17 00:00:00 2001 From: Mark Sagi-Kazar Date: Tue, 4 Jun 2024 20:56:30 +0200 Subject: [PATCH] test: add tests for experimental finder Signed-off-by: Mark Sagi-Kazar --- viper_test.go | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/viper_test.go b/viper_test.go index 7700c9e..184f0b3 100644 --- a/viper_test.go +++ b/viper_test.go @@ -365,7 +365,27 @@ func TestGetConfigFile(t *testing.T) { assert.Error(t, err) }) - t.Run("using a finder", func(t *testing.T) { + t.Run("experimental finder", func(t *testing.T) { + fs := afero.NewMemMapFs() + + err := fs.Mkdir(testutil.AbsFilePath(t, "/etc/viper"), 0o777) + require.NoError(t, err) + + _, err = fs.Create(testutil.AbsFilePath(t, "/etc/viper/config.yaml")) + require.NoError(t, err) + + v := NewWithOptions(ExperimentalFinder()) + + v.SetFs(fs) + + v.AddConfigPath("/etc/viper") + + filename, err := v.getConfigFile() + assert.Equal(t, testutil.AbsFilePath(t, "/etc/viper/config.yaml"), testutil.AbsFilePath(t, filename)) + assert.NoError(t, err) + }) + + t.Run("finder", func(t *testing.T) { fs := afero.NewMemMapFs() err := fs.Mkdir(testutil.AbsFilePath(t, "/etc/viper"), 0o777) @@ -445,6 +465,31 @@ func TestReadInConfig(t *testing.T) { assert.Equal(t, "value", v.Get("key")) }) + t.Run("find file with experimental finder", func(t *testing.T) { + fs := afero.NewMemMapFs() + + err := fs.Mkdir(testutil.AbsFilePath(t, "/etc/viper"), 0o777) + require.NoError(t, err) + + file, err := fs.Create(testutil.AbsFilePath(t, "/etc/viper/config.yaml")) + require.NoError(t, err) + + _, err = file.WriteString(`key: value`) + require.NoError(t, err) + + file.Close() + + v := NewWithOptions(ExperimentalFinder()) + + v.SetFs(fs) + v.AddConfigPath("/etc/viper") + + err = v.ReadInConfig() + require.NoError(t, err) + + assert.Equal(t, "value", v.Get("key")) + }) + t.Run("find file using a finder", func(t *testing.T) { fs := afero.NewMemMapFs()