|
|
@@ -14,25 +14,33 @@ import (
|
|
|
|
|
|
func Test_NewFileManager(t *testing.T) {
|
|
|
t.Run("file system", func(t *testing.T) {
|
|
|
+ // Create File Manager
|
|
|
tmpPath := filepath.Join(os.TempDir(), fmt.Sprintf("opencost-test-file-manager-%d", rand.Int31()))
|
|
|
+ defer os.Remove(tmpPath) // remove managed file on completion to ensure it does not exist for next run
|
|
|
fm, err := NewFileManager(tmpPath)
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
+ // Attempt to download Managed file into a new file, this should fail because managed file has not been initalized
|
|
|
downloadFile, err := os.CreateTemp("", "opencost-test-file-manager-*")
|
|
|
require.NoError(t, err)
|
|
|
err = fm.Download(context.TODO(), downloadFile)
|
|
|
require.ErrorIs(t, err, ErrNotFound)
|
|
|
|
|
|
+ // Create a file and add content to it
|
|
|
uploadFile, err := os.CreateTemp("", "opencost-test-file-manager-*")
|
|
|
require.NoError(t, err)
|
|
|
_, err = uploadFile.WriteString("test-content")
|
|
|
require.NoError(t, err)
|
|
|
- require.NoError(t, err)
|
|
|
+
|
|
|
+ // Upload file to managed file
|
|
|
err = fm.Upload(context.TODO(), uploadFile)
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
+ // Download managed file to original file
|
|
|
err = fm.Download(context.TODO(), downloadFile)
|
|
|
require.NoError(t, err)
|
|
|
+
|
|
|
+ // Check that content matches
|
|
|
_, err = downloadFile.Seek(0, io.SeekStart)
|
|
|
require.NoError(t, err)
|
|
|
data, err := io.ReadAll(downloadFile)
|