diff options
| author | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-29 11:46:17 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukas@labunix.xyz> | 2026-07-29 11:46:17 +0200 |
| commit | 8ddd910dd545c45a7227da87ca125758b4a0e2cb (patch) | |
| tree | b652bb239c622e2f8806a443db21a0b0bf8c8962 /internal/bible/ref_test.go | |
| parent | 79f9ae051c1e8f179e2e7c17f590c105eb18bef1 (diff) | |
| download | lectio-8ddd910dd545c45a7227da87ca125758b4a0e2cb.tar.gz lectio-8ddd910dd545c45a7227da87ca125758b4a0e2cb.zip | |
test(bible): skip corpus-dependent tests when optional corpora aren't embedded
Since 51c0f4e split the corpora (only vul embedded by default; wuj/drb/grb
behind -tags fullbible), `go test ./...` on the default build was red across six
packages -- every failure was a test assuming an optional corpus is present.
Guard those assertions with a skip keyed on bible.Meta(code), so they run under
-tags fullbible and skip -- not fail -- on the default vul-only build. Mixed
tests are split into subtests so the always-embedded vul assertions and pure
logic (pl->vul fallback, explicit passthrough, bt-rejection, i18n labels) keep
running on both builds. Test-only change; no product code or corpora touched.
- internal/bible: TestVerses, TestLookup, TestCorpusBooks, TestChapters,
TestGrbNoApparatusMarkers, TestCrossChapterRange* (requireCorpus helper).
- internal/cli, config, render, tui, web: the same pattern for their
corpus-dependent tests.
- Fixes an index-out-of-range panic in internal/tui's reader tests that was
aborting the package binary and masking 3 further corpus-absence failures
(TestReaderBookmarkFlow, TestReaderChapterJump, TestReaderRemembersPlace).
Verified: `go test ./...` and `go test -tags fullbible ./...` both green (0 FAIL);
guards active only on the default build (29 skips vs 1 unrelated pre-existing);
gofmt and go vet clean.
Diffstat (limited to 'internal/bible/ref_test.go')
| -rw-r--r-- | internal/bible/ref_test.go | 37 |
1 files changed, 22 insertions, 15 deletions
diff --git a/internal/bible/ref_test.go b/internal/bible/ref_test.go index 9473123..0c81a40 100644 --- a/internal/bible/ref_test.go +++ b/internal/bible/ref_test.go @@ -14,22 +14,29 @@ func TestSplitRef(t *testing.T) { } func TestLookup(t *testing.T) { - vs, missing := Lookup("wuj", "John 20:1,11-18") - if len(missing) != 0 { - t.Fatalf("missing = %v", missing) - } - if len(vs) == 0 || vs[0].Verse != 1 { - t.Fatalf("first verse = %+v", vs) - } - last := vs[len(vs)-1] - if last.Verse != 18 { - t.Errorf("last verse = %d want 18", last.Verse) - } - // Deuterocanon now present in vul + drb (Clementine Vulgate / Douay-Rheims). + t.Run("wuj", func(t *testing.T) { + requireCorpus(t, "wuj") + vs, missing := Lookup("wuj", "John 20:1,11-18") + if len(missing) != 0 { + t.Fatalf("missing = %v", missing) + } + if len(vs) == 0 || vs[0].Verse != 1 { + t.Fatalf("first verse = %+v", vs) + } + last := vs[len(vs)-1] + if last.Verse != 18 { + t.Errorf("last verse = %d want 18", last.Verse) + } + }) + // Deuterocanon in the always-embedded Clementine Vulgate. if vs, m := Lookup("vul", "Wisdom 3:1"); len(m) != 0 || len(vs) == 0 { t.Errorf("vul Wisdom 3:1: missing=%v verses=%d (deuterocanon should resolve)", m, len(vs)) } - if vs, m := Lookup("drb", "Judith 13:22"); len(m) != 0 || len(vs) == 0 { - t.Errorf("drb Judith 13:22: missing=%v verses=%d (deuterocanon should resolve)", m, len(vs)) - } + // Deuterocanon in Douay-Rheims (optional corpus). + t.Run("drb", func(t *testing.T) { + requireCorpus(t, "drb") + if vs, m := Lookup("drb", "Judith 13:22"); len(m) != 0 || len(vs) == 0 { + t.Errorf("drb Judith 13:22: missing=%v verses=%d (deuterocanon should resolve)", m, len(vs)) + } + }) } |
