diff options
Diffstat (limited to 'internal/web/server_test.go')
| -rw-r--r-- | internal/web/server_test.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/internal/web/server_test.go b/internal/web/server_test.go index 809ee59..3bb5ea7 100644 --- a/internal/web/server_test.go +++ b/internal/web/server_test.go @@ -232,6 +232,57 @@ func TestServer(t *testing.T) { }) } +func TestReaderDefault(t *testing.T) { + srv := NewServer(config.Default()) + rec := httptest.NewRecorder() + srv.ServeHTTP(rec, httptest.NewRequest("GET", "/reader", nil)) + if rec.Code != 200 { + t.Fatalf("status %d", rec.Code) + } + body := rec.Body.String() + if !strings.Contains(body, `id="reader-root"`) || !strings.Contains(body, `id="pane"`) { + t.Errorf("reader page missing root/pane") + } + if !strings.Contains(body, "Genesis") { // book <option> label (en dialect) + t.Errorf("book options missing Genesis") + } +} + +func TestReaderPassage(t *testing.T) { + srv := NewServer(config.Default()) + rec := httptest.NewRecorder() + srv.ServeHTTP(rec, httptest.NewRequest("GET", "/reader?book=John&chap=3&v=wuj", nil)) + if rec.Code != 200 { + t.Fatalf("status %d", rec.Code) + } + if b := rec.Body.String(); !strings.Contains(b, "John 3") || !strings.Contains(b, "3:16") { + t.Errorf("passage missing heading/verse") + } +} + +func TestReaderCompareAndBTFilter(t *testing.T) { + srv := NewServer(config.Default()) + rec := httptest.NewRecorder() + // bt must be dropped (no corpus); wuj+vul compared side by side. + srv.ServeHTTP(rec, httptest.NewRequest("GET", "/reader?book=John&chap=3&v=bt&v=wuj&v=vul&display=vertical", nil)) + if rec.Code != 200 { + t.Fatalf("status %d", rec.Code) + } + b := rec.Body.String() + if !strings.Contains(b, "display-vertical") { + t.Errorf("vertical compare layout missing") + } +} + +func TestReaderInvalidBook(t *testing.T) { + srv := NewServer(config.Default()) + rec := httptest.NewRecorder() + srv.ServeHTTP(rec, httptest.NewRequest("GET", "/reader?book=Nonsense", nil)) + if rec.Code != 200 { // defaults to the first book, never 500 + t.Errorf("invalid book status %d want 200", rec.Code) + } +} + // TestRenderOrErrorNoSectionsLang checks the "no readings at all for this // day" fragment (finding ยง1) follows lang instead of always being Polish. func TestRenderOrErrorNoSectionsLang(t *testing.T) { |
