Add translation-aware passage queries
This commit is contained in:
@@ -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")
|
||||
Reference in New Issue
Block a user