From e50b003d84b091b60c8028468edc633f04e39731 Mon Sep 17 00:00:00 2001 From: Lukasz Kasprzak Date: Fri, 24 Jul 2026 10:47:48 +0200 Subject: bible-lookup: add --ref passage lookup + --list-pl/--list-en book lists; v0.6.0 --- internal/cli/cli_test.go | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'internal/cli/cli_test.go') diff --git a/internal/cli/cli_test.go b/internal/cli/cli_test.go index 6fc5e0e..c76d61c 100644 --- a/internal/cli/cli_test.go +++ b/internal/cli/cli_test.go @@ -267,3 +267,65 @@ func TestExtractDateDefaultsToday(t *testing.T) { t.Errorf("extractDate rest = %v, want [-a -r]", rest) } } + +func TestListEN(t *testing.T) { + var out, errb bytes.Buffer + if code := Run([]string{"--list-en"}, nil, &out, &errb); code != 0 { + t.Fatalf("--list-en code=%d stderr=%q", code, errb.String()) + } + s := out.String() + if !strings.Contains(s, "John") || !strings.Contains(s, "Genesis") { + t.Errorf("--list-en missing expected books:\n%s", s) + } + // abbrev-then-name, one book per line; expect a J -> John line. + if !strings.Contains(s, "J") { + t.Errorf("--list-en missing John abbrev") + } +} + +func TestListPL(t *testing.T) { + var out, errb bytes.Buffer + if code := Run([]string{"--list-pl"}, nil, &out, &errb); code != 0 { + t.Fatalf("--list-pl code=%d stderr=%q", code, errb.String()) + } + if s := out.String(); !strings.Contains(s, "Jan") || !strings.Contains(s, "Rodzaju") { + t.Errorf("--list-pl missing Polish names:\n%s", s) + } +} + +func TestRefSingle(t *testing.T) { + var out, errb bytes.Buffer + code := Run([]string{"-p", "J 3:16", "-b", "vul"}, nil, &out, &errb) + if code != 0 { + t.Fatalf("ref code=%d stderr=%q", code, errb.String()) + } + if s := out.String(); !strings.Contains(s, "3:16") { + t.Errorf("ref output missing verse 3:16:\n%s", s) + } +} + +func TestRefRejectsBT(t *testing.T) { + var out, errb bytes.Buffer + if code := Run([]string{"-p", "J 3:16", "-b", "bt"}, nil, &out, &errb); code != 2 { + t.Errorf("ref -b bt code=%d want 2 (stderr=%q)", code, errb.String()) + } +} + +func TestRefCompare(t *testing.T) { + var out, errb bytes.Buffer + code := Run([]string{"-p", "J 3:16", "-c", "vul,drb"}, nil, &out, &errb) + if code != 0 { + t.Fatalf("ref compare code=%d stderr=%q", code, errb.String()) + } + if s := out.String(); !strings.Contains(s, "3:16") { + t.Errorf("ref compare missing verse:\n%s", s) + } +} + +func TestRefNotFound(t *testing.T) { + var out, errb bytes.Buffer + // A book/verse the corpus won't have text for -> exit 1. + if code := Run([]string{"-p", "Zzz 9:9", "-b", "vul"}, nil, &out, &errb); code != 1 { + t.Errorf("ref not-found code=%d want 1 (stderr=%q)", code, errb.String()) + } +} -- cgit v1.3