Files
codit/backend/internal/storage/files_test.go

57 lines
1.3 KiB
Go

package storage
import "io"
import "os"
import "path/filepath"
import "strings"
import "testing"
func TestFileStoreSaveAndOpen(t *testing.T) {
var fs FileStore
var content string
var path string
var n int64
var err error
var file *os.File
var data []byte
fs = FileStore{BaseDir: filepath.Join(t.TempDir(), "uploads")}
content = "hello storage"
path, n, err = fs.Save("a.txt", strings.NewReader(content))
if err != nil {
t.Fatalf("Save() error: %v", err)
}
if n != int64(len(content)) {
t.Fatalf("unexpected bytes copied: got=%d want=%d", n, len(content))
}
file, err = fs.Open(path)
if err != nil {
t.Fatalf("Open() error: %v", err)
}
defer file.Close()
data, err = io.ReadAll(file)
if err != nil {
t.Fatalf("ReadAll() error: %v", err)
}
if string(data) != content {
t.Fatalf("unexpected content: got=%q want=%q", string(data), content)
}
}
func TestFileStoreEnsureCreatesDirectory(t *testing.T) {
var fs FileStore
var err error
var st os.FileInfo
fs = FileStore{BaseDir: filepath.Join(t.TempDir(), "x", "y", "z")}
err = fs.Ensure()
if err != nil {
t.Fatalf("Ensure() error: %v", err)
}
st, err = os.Stat(fs.BaseDir)
if err != nil {
t.Fatalf("stat basedir: %v", err)
}
if !st.IsDir() {
t.Fatalf("base path is not directory")
}
}