47 lines
850 B
Go
47 lines
850 B
Go
|
package fileutils
|
||
|
|
||
|
import "testing"
|
||
|
|
||
|
func TestCommonPrefix(t *testing.T) {
|
||
|
testCases := map[string]struct {
|
||
|
paths []string
|
||
|
want string
|
||
|
}{
|
||
|
"same lvl": {
|
||
|
paths: []string{
|
||
|
"/home/user/file1",
|
||
|
"/home/user/file2",
|
||
|
},
|
||
|
want: "/home/user",
|
||
|
},
|
||
|
"sub folder": {
|
||
|
paths: []string{
|
||
|
"/home/user/folder",
|
||
|
"/home/user/folder/file",
|
||
|
},
|
||
|
want: "/home/user/folder",
|
||
|
},
|
||
|
"relative path": {
|
||
|
paths: []string{
|
||
|
"/home/user/folder",
|
||
|
"/home/user/folder/../folder2",
|
||
|
},
|
||
|
want: "/home/user",
|
||
|
},
|
||
|
"no common path": {
|
||
|
paths: []string{
|
||
|
"/home/user/folder",
|
||
|
"/etc/file",
|
||
|
},
|
||
|
want: "",
|
||
|
},
|
||
|
}
|
||
|
for name, tt := range testCases {
|
||
|
t.Run(name, func(t *testing.T) {
|
||
|
if got := CommonPrefix('/', tt.paths...); got != tt.want {
|
||
|
t.Errorf("CommonPrefix() = %v, want %v", got, tt.want)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|