diff options
| author | Gab Virebent <gabriel1@virebent.art> | 2026-08-22 20:36:56 +0200 |
|---|---|---|
| committer | Gab Virebent <gabriel1@virebent.art> | 2026-08-22 20:36:56 +0200 |
| commit | c1decadb590c4d79d92bcc4df7772119a5c91244 (patch) | |
| tree | 468f9fa37535dbb90cc5d4061eb20de83912131e /internal/store/store_test.go | |
| download | aegis-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.go | 34 |
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) + } +} |
