aboutsummaryrefslogtreecommitdiff
path: root/test/test_view.ml
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-08-20 19:05:13 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-08-20 19:05:13 +0200
commit7dbd16cdf5880c0006dffacd09214ee607050b64 (patch)
tree01e1ee37a2be97a0b06fad70de975d8007beb702 /test/test_view.ml
parent1aeca948c2a2a82bffaaec65077140aa05f7b3f4 (diff)
parent1da70dc7ac03fe33fb92b172a0e26932764170d6 (diff)
downloadcolitur-7dbd16cdf5880c0006dffacd09214ee607050b64.tar.gz
colitur-7dbd16cdf5880c0006dffacd09214ee607050b64.zip
Merge branch 'citations-and-sigla'
Citations are parsed into structure and re-rendered, so book names, abbreviations, punctuation style and numbering tradition become files a user edits rather than strings frozen in the data. New lib/citation (Book, Parse, Render, Sigla); [bible] and [sigla] sections in language files; lang/traditions.ini for numbering; three config keys and CLI flags. --raw emits every citation byte-for-byte as stored, bypassing the whole pipeline, so output stays diffable against lectio and the raw view does not depend on the parser being correct.
Diffstat (limited to 'test/test_view.ml')
-rw-r--r--test/test_view.ml18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/test_view.ml b/test/test_view.ml
index 37fb284..b2d302e 100644
--- a/test/test_view.ml
+++ b/test/test_view.ml
@@ -45,7 +45,8 @@ let default_lang =
lazy (Colitur_naming.Lang.with_fallback (read_lang "../lang/en.ini") (read_lang "../lang/la.ini"))
let view_of y =
- V.of_days ~lang:(Lazy.force default_lang) ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:y
+ let lang = Lazy.force default_lang in
+ V.of_days ~lang ~sigla:(Test_support.default_sigla lang) ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:y
(days_of_year y)
let get path v =
@@ -180,7 +181,10 @@ let latin () =
match Colitur_naming.Lang.of_string s with
| Ok t -> t | Error e -> Alcotest.failf "la.ini: %s" e
-let view_named y = V.of_days ~lang:(latin ()) ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:y (days_of_year y)
+let view_named y =
+ let lang = latin () in
+ V.of_days ~lang ~sigla:(Test_support.default_sigla lang) ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:y
+ (days_of_year y)
(* The ordo booklet's week header (Hebdomada I (Ian 1-2)): a Roman numeral
beside the existing arabic one, and month_num/month_name/month_abbr
@@ -256,7 +260,10 @@ let test_no_day_shows_a_slug () =
(as_list (get [ "days" ] v))
let test_slug_is_unchanged_by_naming () =
- let raw = V.of_days ~lang:Colitur_naming.Lang.raw ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:2027 (days_of_year 2027) in
+ let raw =
+ V.of_days ~lang:Colitur_naming.Lang.raw ~sigla:Colitur_citation.Sigla.verbatim
+ ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:2027 (days_of_year 2027)
+ in
let named = view_named 2027 in
List.iter2
(fun a b -> Alcotest.(check string) "slug identical" (as_str (get [ "slug" ] a)) (as_str (get [ "slug" ] b)))
@@ -264,7 +271,10 @@ let test_slug_is_unchanged_by_naming () =
(* Under --raw the name IS the slug: that is what makes raw output byte-stable. *)
let test_raw_name_equals_slug () =
- let raw = V.of_days ~lang:Colitur_naming.Lang.raw ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:2027 (days_of_year 2027) in
+ let raw =
+ V.of_days ~lang:Colitur_naming.Lang.raw ~sigla:Colitur_citation.Sigla.verbatim
+ ~vocab:Rite_ef.Vocab_ef.vocab ~rite:"ef" ~year:2027 (days_of_year 2027)
+ in
List.iter
(fun d -> Alcotest.(check string) "raw" (as_str (get [ "slug" ] d)) (as_str (get [ "name" ] d)))
(as_list (get [ "days" ] raw))