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") } }