bitbucket.org/ai69/amoy@v0.2.3/dir_test.go (about)

     1  package amoy
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/1set/gut/yos"
     8  )
     9  
    10  func TestGetHomeDir(t *testing.T) {
    11  	osHome := os.Getenv("HOME")
    12  	tests := []struct {
    13  		name    string
    14  		dirs    []string
    15  		want    string
    16  		wantErr bool
    17  	}{
    18  		{"nil args", nil, osHome, false},
    19  		{"no args", []string{}, osHome, false},
    20  		{"empty arg", []string{""}, osHome, false},
    21  		{"one arg", []string{"foo"}, yos.JoinPath(osHome, "foo"), false},
    22  		{"two args", []string{"foo", "bar"}, yos.JoinPath(osHome, "foo", "bar"), false},
    23  	}
    24  	for _, tt := range tests {
    25  		t.Run(tt.name, func(t *testing.T) {
    26  			got, err := GetHomeDir(tt.dirs...)
    27  			if (err != nil) != tt.wantErr {
    28  				t.Errorf("GetHomeDir(%v) error = %v, wantErr %v", tt.dirs, err, tt.wantErr)
    29  				return
    30  			}
    31  			if got != tt.want {
    32  				t.Errorf("GetHomeDir(%v) got = %v, want %v", tt.dirs, got, tt.want)
    33  			}
    34  		})
    35  	}
    36  }