rara/packages/go/artifact/filesystem_test.go
toki fdc86c7ff4
Some checks are pending
ci / validate (push) Waiting to run
initial commit
2026-07-18 18:41:17 +09:00

50 lines
999 B
Go

package artifact
import (
"context"
"io"
"strings"
"testing"
)
func TestFilesystemRoundTrip(t *testing.T) {
store, err := NewFilesystem(t.TempDir())
if err != nil {
t.Fatal(err)
}
descriptor, err := store.Put(
context.Background(),
"datasets/example.jsonl",
strings.NewReader("example"),
"application/x-ndjson",
)
if err != nil {
t.Fatal(err)
}
if descriptor.SizeBytes != 7 {
t.Fatalf("expected 7 bytes, got %d", descriptor.SizeBytes)
}
reader, err := store.Open(context.Background(), "datasets/example.jsonl")
if err != nil {
t.Fatal(err)
}
defer reader.Close()
body, err := io.ReadAll(reader)
if err != nil {
t.Fatal(err)
}
if string(body) != "example" {
t.Fatalf("unexpected body %q", body)
}
}
func TestFilesystemRejectsTraversal(t *testing.T) {
store, err := NewFilesystem(t.TempDir())
if err != nil {
t.Fatal(err)
}
if _, err := store.Open(context.Background(), "../secret"); err == nil {
t.Fatal("expected traversal to be rejected")
}
}