summaryrefslogtreecommitdiffstats
path: root/internal/store/store_test.go
diff options
context:
space:
mode:
authorGab Virebent <gabriel1@virebent.art>2026-08-22 20:36:56 +0200
committerGab Virebent <gabriel1@virebent.art>2026-08-22 20:36:56 +0200
commitc1decadb590c4d79d92bcc4df7772119a5c91244 (patch)
tree468f9fa37535dbb90cc5d4061eb20de83912131e /internal/store/store_test.go
downloadaegis-c1decadb590c4d79d92bcc4df7772119a5c91244.tar.gz
aegis-c1decadb590c4d79d92bcc4df7772119a5c91244.tar.xz
aegis-c1decadb590c4d79d92bcc4df7772119a5c91244.zip
Initial Aegis Usenet client release
Diffstat (limited to 'internal/store/store_test.go')
-rw-r--r--internal/store/store_test.go34
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/store/store_test.go b/internal/store/store_test.go
new file mode 100644
index 0000000..40efef1
--- /dev/null
+++ b/internal/store/store_test.go
@@ -0,0 +1,34 @@
+package store
+
+import (
+ "path/filepath"
+ "testing"
+
+ "aegis/internal/filter"
+)
+
+func TestStoreRoundTrip(t *testing.T) {
+ path := filepath.Join(t.TempDir(), "state.json")
+ s, err := Open(path)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if err := s.UpsertArticle(Article{Key: "comp.test:1", Group: "comp.test", Number: 1, Raw: "Subject: test\r\n\r\nbody"}); err != nil {
+ t.Fatal(err)
+ }
+ if err := s.SaveDraft(Draft{ID: "draft-1", Body: "hello"}); err != nil {
+ t.Fatal(err)
+ }
+ s.SetFilters([]filter.Rule{{ID: "r", Enabled: true, Field: filter.FieldSubject, Operator: filter.OperatorContains, Pattern: "x", Action: filter.ActionHide}})
+ if err := s.Save(); err != nil {
+ t.Fatal(err)
+ }
+ reloaded, err := Open(path)
+ if err != nil {
+ t.Fatal(err)
+ }
+ snapshot := reloaded.Snapshot()
+ if len(snapshot.Articles) != 1 || len(snapshot.Drafts) != 1 || len(snapshot.Filters) != 1 {
+ t.Fatalf("unexpected snapshot: %#v", snapshot)
+ }
+}