aboutsummaryrefslogtreecommitdiff
path: root/internal/tui/reader_test.go
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-07-29 13:55:27 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-07-29 13:55:27 +0200
commit18578434f41d4fe34438c2f171388109a288c18c (patch)
treeffeb1108c564840be530f4a6006aa9acb222a412 /internal/tui/reader_test.go
parent6964ee56de01f9769a39ba480dc787339b642f7a (diff)
downloadlectio-18578434f41d4fe34438c2f171388109a288c18c.tar.gz
lectio-18578434f41d4fe34438c2f171388109a288c18c.zip
tui(reader): flag bookmarked verses with a red * in the reading pane
A verse that has a bookmark now shows a red "*" at the end of its last line, so saved verses are visible while reading. The set of bookmarked verses for the current book+chapter is refreshed on chapter load, on save, and on returning from the bookmarks list (one store read each). Test covers the flag + render.
Diffstat (limited to 'internal/tui/reader_test.go')
-rw-r--r--internal/tui/reader_test.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/internal/tui/reader_test.go b/internal/tui/reader_test.go
index da8d4d4..b741732 100644
--- a/internal/tui/reader_test.go
+++ b/internal/tui/reader_test.go
@@ -98,6 +98,36 @@ func TestReaderBookmarkTagFilter(t *testing.T) {
}
}
+func TestReaderBookmarkMarker(t *testing.T) {
+ m := win(enReader(t), 80, 30)
+ // vul is always embedded, so verses load without -tags fullbible.
+ for i, v := range m.versions {
+ if v == "vul" {
+ m.verIdx = i
+ }
+ }
+ if _, err := m.store.Add(bookmarks.Bookmark{Book: "John", Chapter: 3, Verse: 16, Note: "x"}); err != nil {
+ t.Fatal(err)
+ }
+ m.bookIdx = m.bookIndex("John")
+ if m.bookIdx < 0 {
+ t.Fatal("book John not found")
+ }
+ m = m.openAt(3, 1) // loads John 3 and refreshes the marked-verse set
+
+ if !m.markedVerses[16] {
+ t.Fatalf("verse 16 not flagged; markedVerses=%v", m.markedVerses)
+ }
+ if m.markedVerses[15] {
+ t.Fatal("verse 15 should not be flagged")
+ }
+ // the rendered body carries the "*" marker (styles are stripped in tests, so
+ // the star is plain, but present).
+ if !strings.Contains(strings.Join(m.readBodyHL(m.innerW(), -1), "\n"), "*") {
+ t.Fatal("rendered body has no bookmark marker")
+ }
+}
+
func TestReaderInit(t *testing.T) {
m := enReader(t)
if m.mode != modePick {