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)
 | 
						|
			}
 | 
						|
		})
 | 
						|
	}
 | 
						|
}
 |