diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-24 15:16:47 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-24 15:16:47 +0200 |
| commit | 1e4939874a14d8abb13e82b2273bfc5f9d653295 (patch) | |
| tree | 9c9eecb37fad3dc78d5bd8f58bc405d6f9cbd672 /internal/web/server_test.go | |
| parent | e6665bd3f9ae011f65788004e4eab4472a461e8f (diff) | |
| download | lectio-1e4939874a14d8abb13e82b2273bfc5f9d653295.tar.gz lectio-1e4939874a14d8abb13e82b2273bfc5f9d653295.zip | |
bookmarks: web reader bookmarks with notes + tags (add/list/filter/jump/delete); v0.15.0
Diffstat (limited to 'internal/web/server_test.go')
| -rw-r--r-- | internal/web/server_test.go | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/internal/web/server_test.go b/internal/web/server_test.go index 61546b8..f6c050b 100644 --- a/internal/web/server_test.go +++ b/internal/web/server_test.go @@ -597,3 +597,37 @@ func TestSettingsPostEmptyBooksPreservesFile(t *testing.T) { t.Errorf("empty books submit clobbered books.toml: got %q", got) } } + +func TestBookmarksFlow(t *testing.T) { + t.Setenv("XDG_DATA_HOME", t.TempDir()) + srv := NewServer(config.Default()) + + // Add via the reader form. + form := url.Values{} + form.Set("book", "John") + form.Set("chap", "3") + form.Set("note", "for God so loved") + form.Set("tags", "grace, gospel") + post := httptest.NewRequest("POST", "/reader/bookmark", strings.NewReader(form.Encode())) + post.Header.Set("Content-Type", "application/x-www-form-urlencoded") + rec := httptest.NewRecorder() + srv.ServeHTTP(rec, post) + if rec.Code != http.StatusSeeOther { + t.Fatalf("add status %d", rec.Code) + } + + // Listed on /bookmarks. + list := httptest.NewRecorder() + srv.ServeHTTP(list, httptest.NewRequest("GET", "/bookmarks", nil)) + b := list.Body.String() + if !strings.Contains(b, "John") || !strings.Contains(b, "for God so loved") || !strings.Contains(b, `book=John&chap=3`) { + t.Errorf("bookmark not listed:\n%s", b) + } + + // Tag filter. + byTag := httptest.NewRecorder() + srv.ServeHTTP(byTag, httptest.NewRequest("GET", "/bookmarks?tag=grace", nil)) + if !strings.Contains(byTag.Body.String(), "John") { + t.Errorf("tag filter dropped the bookmark") + } +} |
