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  }