github.com/pavlo67/common@v0.5.3/common/filelib/path_test.go (about)

     1  package filelib
     2  
     3  import "testing"
     4  
     5  func TestJoin(t *testing.T) {
     6  	tests := []struct {
     7  		name     string
     8  		basePath string
     9  		path     string
    10  		want     string
    11  	}{
    12  		{
    13  			name:     "",
    14  			basePath: "/a/b/c",
    15  			path:     "d",
    16  			want:     "/a/b/c/d",
    17  		},
    18  		{
    19  			name:     "",
    20  			basePath: "/a/b/c",
    21  			path:     "../d",
    22  			want:     "/a/b/d",
    23  		},
    24  		{
    25  			name:     "",
    26  			basePath: "/a/b/c",
    27  			path:     "/d",
    28  			want:     "/d",
    29  		},
    30  		{
    31  			name:     "",
    32  			basePath: "/a/b/c",
    33  			path:     "d/",
    34  			want:     "/a/b/c/d",
    35  		},
    36  		{
    37  			name:     "",
    38  			basePath: "/a/b/c",
    39  			path:     "..",
    40  			want:     "/a/b",
    41  		},
    42  		{
    43  			name:     "",
    44  			basePath: "/a/b/c",
    45  			path:     "",
    46  			want:     "/a/b/c",
    47  		},
    48  	}
    49  	for _, tt := range tests {
    50  		t.Run(tt.name, func(t *testing.T) {
    51  			if got := Join(tt.basePath, tt.path); got != tt.want {
    52  				t.Errorf("Join() = %v, want %v", got, tt.want)
    53  			}
    54  		})
    55  	}
    56  }