starlog/internal/archivex/store_test.go
2026-03-19 16:37:57 +08:00

59 lines
1.5 KiB
Go

package archivex
import (
"context"
"io/ioutil"
"os"
"testing"
)
func TestStoreFileLifecycle(t *testing.T) {
store := NewStore()
tmp, err := ioutil.TempFile("", "starlog-archivex-*.log")
if err != nil {
t.Fatalf("TempFile failed: %v", err)
}
defer os.Remove(tmp.Name())
defer tmp.Close()
rec := FileRecord{FullPath: tmp.Name(), Pointer: tmp}
if err := store.SetFile("id-1", rec); err != nil {
t.Fatalf("SetFile failed: %v", err)
}
got, ok := store.GetFile("id-1")
if !ok {
t.Fatalf("GetFile should return stored record")
}
if got.FullPath != rec.FullPath || got.Pointer != rec.Pointer {
t.Fatalf("unexpected file record: %+v", got)
}
if err := store.DeleteFile("id-1"); err != nil {
t.Fatalf("DeleteFile failed: %v", err)
}
if _, ok := store.GetFile("id-1"); ok {
t.Fatalf("record should not exist after DeleteFile")
}
}
func TestStoreRunnerLifecycle(t *testing.T) {
store := NewStore()
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
runner := &Runner{Cancel: cancel, Done: make(chan struct{})}
if err := store.SetRunner("r-1", runner); err != nil {
t.Fatalf("SetRunner failed: %v", err)
}
got, ok := store.GetRunner("r-1")
if !ok || got != runner {
t.Fatalf("GetRunner should return stored runner")
}
if err := store.DeleteRunner("r-1"); err != nil {
t.Fatalf("DeleteRunner failed: %v", err)
}
if _, ok := store.GetRunner("r-1"); ok {
t.Fatalf("runner should not exist after DeleteRunner")
}
_ = ctx
}