diff options
Diffstat (limited to 'test/test_config.ml')
| -rw-r--r-- | test/test_config.ml | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/test_config.ml b/test/test_config.ml index d348d9b..1dc1382 100644 --- a/test/test_config.ml +++ b/test/test_config.ml @@ -105,6 +105,23 @@ let test_two_defaults_blocks_report_no_unknown_sections () = (* Task 8: sigla_style/sigla_book/sigla_tradition read the same way lang/template/format do, in the same [\[defaults\]] section -- no new section, and every key recognised (so [unknown_keys] stays empty). *) +(* The escaping flavour is usually inferred from the template's extension, so + this key exists for the template whose extension says nothing. Getting it + wrong yields malformed output rather than ugly output, which is why there + is no silent fallback and why it is worth being settable rather than + passable only per-run. *) +let test_flavour_is_read () = + match C.of_string "[defaults]\nflavour = groff\n" with + | Error e -> Alcotest.failf "parse: %s" e + | Ok c -> + Alcotest.(check (option string)) "flavour" (Some "groff") (C.flavour c); + Alcotest.(check (list string)) "nothing unknown" [] (C.unknown_keys c) + +let test_flavour_absent_is_none () = + match C.of_string "[defaults]\nlang = en\n" with + | Error e -> Alcotest.failf "parse: %s" e + | Ok c -> Alcotest.(check bool) "unset" true (C.flavour c = None) + let test_sigla_keys_are_read () = let text = "[defaults]\nsigla_style = la\nsigla_book = full\nsigla_tradition = modern\n" @@ -149,6 +166,8 @@ let suite = `Quick test_overlays_accumulate_across_blocks; Alcotest.test_case "two defaults blocks report no unknown sections" `Quick test_two_defaults_blocks_report_no_unknown_sections; + Alcotest.test_case "flavour is read" `Quick test_flavour_is_read; + Alcotest.test_case "flavour absent is none" `Quick test_flavour_absent_is_none; Alcotest.test_case "sigla keys are read" `Quick test_sigla_keys_are_read; Alcotest.test_case "empty config sigla keys are none" `Quick test_empty_config_sigla_keys_are_none; Alcotest.test_case "sigla key repeated across blocks last wins" |
