github.com/Files-com/files-sdk-go/v3@v3.1.81/file/tmpdownloadpath_darwin_test.go (about) 1 //go:build darwin 2 3 package file 4 5 import ( 6 "fmt" 7 "os" 8 "path/filepath" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 ) 14 15 func Test_tmpDownloadPath(t *testing.T) { 16 t.Run("base case", func(t *testing.T) { 17 dir := t.TempDir() 18 path, err := tmpDownloadPath(filepath.Join(dir, "you-wont-find-me")) 19 require.NoError(t, err) 20 assert.Equal(t, filepath.Join(dir, "you-wont-find-me.download/you-wont-find-me"), path) 21 }) 22 23 t.Run("it increments a number", func(t *testing.T) { 24 dir := t.TempDir() 25 file, err := os.Create(filepath.Join(dir, "find-me.download")) 26 _, err = file.Write([]byte("hello")) 27 require.NoError(t, err) 28 err = file.Close() 29 if err != nil { 30 panic(err) 31 } 32 path, err := tmpDownloadPath(filepath.Join(dir, "find-me")) 33 require.NoError(t, err) 34 assert.Equal(t, fmt.Sprintf(filepath.Join(dir, "find-me (1).download/find-me")), path, "it increments a number") 35 }) 36 37 t.Run("it increments a number lots of times", func(t *testing.T) { 38 dir := t.TempDir() 39 for i := 0; i < 11; i++ { 40 path, err := tmpDownloadPath(filepath.Join(dir, "find-me")) 41 require.NoError(t, err) 42 file, err := os.Create(path) 43 require.NoError(t, err) 44 file.Close() 45 } 46 47 path, err := tmpDownloadPath(filepath.Join(dir, "find-me")) 48 require.NoError(t, err) 49 assert.NotEqual(t, fmt.Sprintf(filepath.Join(dir, "find-me (11).download/find-me")), path) 50 }) 51 }