mirror of https://github.com/portainer/portainer
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package filesystem
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"path"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
// temporary function until upgrade to 1.16
|
|
func tempDir(t *testing.T) string {
|
|
tmpDir, err := os.MkdirTemp("", "dir")
|
|
assert.NoError(t, err, "MkdirTemp should not fail")
|
|
|
|
return tmpDir
|
|
}
|
|
|
|
func Test_movePath_shouldFailIfOriginalPathDoesntExist(t *testing.T) {
|
|
tmpDir := tempDir(t)
|
|
missingPath := path.Join(tmpDir, "missing")
|
|
targetPath := path.Join(tmpDir, "target")
|
|
|
|
defer os.RemoveAll(tmpDir)
|
|
|
|
err := MoveDirectory(missingPath, targetPath)
|
|
assert.Error(t, err, "move directory should fail when target path exists")
|
|
}
|
|
|
|
func Test_movePath_shouldFailIfTargetPathDoesExist(t *testing.T) {
|
|
originalPath := tempDir(t)
|
|
missingPath := tempDir(t)
|
|
|
|
defer os.RemoveAll(originalPath)
|
|
defer os.RemoveAll(missingPath)
|
|
|
|
err := MoveDirectory(originalPath, missingPath)
|
|
assert.Error(t, err, "move directory should fail when target path exists")
|
|
}
|
|
|
|
func Test_movePath_success(t *testing.T) {
|
|
originalPath := tempDir(t)
|
|
|
|
defer os.RemoveAll(originalPath)
|
|
|
|
err := MoveDirectory(originalPath, fmt.Sprintf("%s-old", originalPath))
|
|
assert.NoError(t, err)
|
|
}
|