Add translation-aware passage queries

This commit is contained in:
2026-06-14 08:46:34 -05:00
parent 42d2587704
commit 176fa46816
4 changed files with 131 additions and 17 deletions
+44
View File
@@ -0,0 +1,44 @@
import std/unittest
import ../src/passage_query
suite "passage query parser":
test "uses the default translation when no marker is present":
let queries = parsePassageQueries("John 3:16", "kjv")
check queries.len == 1
check queries[0].referenceText == "John 3:16"
check queries[0].translation == "kjv"
test "uses a trailing translation marker":
let queries = parsePassageQueries("2 John 5 (KJV)", "esv")
check queries.len == 1
check queries[0].referenceText == "2 John 5"
check queries[0].translation == "kjv"
test "parses mixed translation queries":
let queries = parsePassageQueries("2 John 5 (KJV); 2 John 5 (ESV)", "mev")
check queries.len == 2
check queries[0].referenceText == "2 John 5"
check queries[0].translation == "kjv"
check queries[1].referenceText == "2 John 5"
check queries[1].translation == "esv"
test "uses the default translation per unmarked reference":
let queries = parsePassageQueries("John 3:16; Psalm 23 (MEV)", "nkjv")
check queries.len == 2
check queries[0].referenceText == "John 3:16"
check queries[0].translation == "nkjv"
check queries[1].referenceText == "Psalms 23"
check queries[1].translation == "mev"
test "rejects unknown translation markers":
expect ValueError:
discard parsePassageQueries("John 3:16 (XYZ)", "esv")
test "rejects unknown default translations":
expect ValueError:
discard parsePassageQueries("John 3:16", "xyz")