diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-29 13:55:27 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-29 13:55:27 +0200 |
| commit | 18578434f41d4fe34438c2f171388109a288c18c (patch) | |
| tree | ffeb1108c564840be530f4a6006aa9acb222a412 /internal/tui/reader_test.go | |
| parent | 6964ee56de01f9769a39ba480dc787339b642f7a (diff) | |
| download | lectio-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.go | 30 |
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 { |
