Files
glpi-ai-agent/internal/state/store_test.go
T
jbergner 9b3227348d
release-tag / release-image (push) Successful in 1m33s
init
2026-07-27 17:32:35 +02:00

52 lines
1.0 KiB
Go

package state
import (
"github.com/example/glpi-ai-agent/internal/model"
"testing"
"time"
)
func TestStoreRoundTrip(t *testing.T) {
dir := t.TempDir()
s, err := Open(dir, 10)
if err != nil {
t.Fatal(err)
}
r := model.RunRecord{TicketID: 7, SourceVersion: "v1", FinishedAt: time.Now(), Outcome: "processed"}
if err := s.Append(r); err != nil {
t.Fatal(err)
}
if !s.Seen(7, "v1") {
t.Fatal("not seen")
}
s2, err := Open(dir, 10)
if err != nil {
t.Fatal(err)
}
if !s2.Seen(7, "v1") {
t.Fatal("not persisted")
}
}
func TestErrorRunIsRetriedAfterRestart(t *testing.T) {
dir := t.TempDir()
s, err := Open(dir, 10)
if err != nil {
t.Fatal(err)
}
r := model.RunRecord{TicketID: 8, SourceVersion: "v1", FinishedAt: time.Now(), Outcome: "error", Error: "temporary outage"}
if err := s.Append(r); err != nil {
t.Fatal(err)
}
if s.Seen(8, "v1") {
t.Fatal("failed run must remain retryable")
}
s2, err := Open(dir, 10)
if err != nil {
t.Fatal(err)
}
if s2.Seen(8, "v1") {
t.Fatal("failed run became seen after restart")
}
}