diff --git a/helpers/path_test.go b/helpers/path_test.go index f4d3dd303..366ed6e4c 100644 --- a/helpers/path_test.go +++ b/helpers/path_test.go @@ -395,7 +395,6 @@ func TestAbsPathify(t *testing.T) { } data := []test{ {os.TempDir(), filepath.FromSlash("/work"), filepath.Clean(os.TempDir())}, // TempDir has trailing slash - // todo bep breaks on Windows: {filepath.FromSlash("/banana/../dir/"), filepath.FromSlash("/work"), filepath.FromSlash("/dir")}, {"dir", filepath.FromSlash("/work"), filepath.FromSlash("/work/dir")}, } diff --git a/helpers/path_unix_test.go b/helpers/path_unix_test.go new file mode 100644 index 000000000..d9f73c6ef --- /dev/null +++ b/helpers/path_unix_test.go @@ -0,0 +1,27 @@ +// +build !windows + +package helpers + +import ( + "github.com/spf13/viper" + "testing" +) + +func TestPlatformAbsPathify(t *testing.T) { + type test struct { + inPath, workingDir, expected string + } + data := []test{ + {"/banana/../dir/", "/work", "/dir"}, + } + + for i, d := range data { + // todo see comment in AbsPathify + viper.Set("WorkingDir", d.workingDir) + + expected := AbsPathify(d.inPath) + if d.expected != expected { + t.Errorf("Test %d failed. Expected %q but got %q", i, d.expected, expected) + } + } +} diff --git a/helpers/path_windows_test.go b/helpers/path_windows_test.go new file mode 100644 index 000000000..22b24ce31 --- /dev/null +++ b/helpers/path_windows_test.go @@ -0,0 +1,27 @@ +package helpers + +import ( + "github.com/spf13/viper" + "testing" +) + +func TestPlatformAbsPathify(t *testing.T) { + type test struct { + inPath, workingDir, expected string + } + data := []test{ + {"c:\\banana\\..\\dir", "c:\\foo", "c:\\dir"}, + {"\\dir", "c:\\foo", "c:\\foo\\dir"}, + {"c:\\", "c:\\foo", "c:\\"}, + } + + for i, d := range data { + // todo see comment in AbsPathify + viper.Set("WorkingDir", d.workingDir) + + expected := AbsPathify(d.inPath) + if d.expected != expected { + t.Errorf("Test %d failed. Expected %q but got %q", i, d.expected, expected) + } + } +}