github.com/jingweno/gh@v2.1.1-0.20221007190738-04a7985fa9a1+incompatible/commands/release_test.go (about) 1 package commands 2 3 import ( 4 "github.com/bmizerany/assert" 5 "io/ioutil" 6 "os" 7 "path/filepath" 8 "testing" 9 ) 10 11 func TestAssetsDirWithoutFlag(t *testing.T) { 12 dir := createTempDir(t) 13 pwd, err := os.Getwd() 14 if err != nil { 15 t.Fatal(err) 16 } 17 defer func() { 18 os.Chdir(pwd) 19 os.RemoveAll(dir) 20 }() 21 22 os.Chdir(dir) 23 24 tagDir := filepath.Join(dir, "releases", "v1.0.0") 25 assertAssetsDirSelected(t, tagDir, "") 26 } 27 28 func TestAssetsDirWithFlag(t *testing.T) { 29 dir := createTempDir(t) 30 defer os.RemoveAll(dir) 31 32 tagDir := filepath.Join(dir, "releases", "v1.0.0") 33 assertAssetsDirSelected(t, tagDir, tagDir) 34 } 35 36 func assertAssetsDirSelected(t *testing.T, expectedDir, flagDir string) { 37 assets, err := getAssetsDirectory(flagDir, "v1.0.0") 38 assert.NotEqual(t, nil, err) // Error if it doesn't exist 39 40 os.MkdirAll(expectedDir, 0755) 41 assets, err = getAssetsDirectory(flagDir, "v1.0.0") 42 assert.NotEqual(t, nil, err) // Error if it's empty 43 44 ioutil.TempFile(expectedDir, "gh-test") 45 assets, err = getAssetsDirectory(flagDir, "v1.0.0") 46 47 fiExpected, err := os.Stat(expectedDir) 48 fiAssets, err := os.Stat(assets) 49 50 assert.Equal(t, nil, err) 51 assert.T(t, os.SameFile(fiExpected, fiAssets)) 52 }