package main import ( "fmt" "io/fs" "os" "path/filepath" "testing" "time" "github.com/stretchr/testify/require" ) func newRebuildTestAgent(t *testing.T) *Agent { t.Helper() agent, err := openAgent(filepath.Join(t.TempDir(), "agent")) require.NoError(t, err) return agent } func rebuildTestLog(t *testing.T, root string, entries []DatedMessage) { t.Helper() memory, err := openMemory(t.Context(), root, time.Now, newFakeSummarizer(), discardLog()) require.NoError(t, err) for _, entry := range entries { _, err = memory.AppendDated(entry.Kind, entry.Text, entry.Date) require.NoError(t, err) } require.NoError(t, memory.Wait(t.Context())) require.NoError(t, memory.Close()) } func rebuildTestSnapshot(t *testing.T, root string) map[string]string { t.Helper() files := make(map[string]string) err := filepath.WalkDir(root, func(path string, entry fs.DirEntry, err error) error { if err != nil { return fmt.Errorf("read snapshot entry: %w", err) } if entry.IsDir() { return nil } relative, err := filepath.Rel(root, path) if err != nil { return fmt.Errorf("find snapshot relative path: %w", err) } data, err := os.ReadFile(path) if err != nil { return fmt.Errorf("read snapshot file: %w", err) } info, err := entry.Info() if err != nil { return fmt.Errorf("read snapshot mode: %w", err) } files[relative] = info.Mode().String() + string(data) return nil }) require.NoError(t, err) return files }