]> Git — Sourcephile - julm/worksheets.git/blob - tests/Worksheets/Writing/LatinSpec.hs
d3ca336153b3386741a1f3945a3490390c990fae
[julm/worksheets.git] / tests / Worksheets / Writing / LatinSpec.hs
1 module Worksheets.Writing.LatinSpec where
2
3 import Data.Function (($), (&), (.))
4 import Data.Functor ((<&>))
5 import Data.GenValidity.Map ()
6 import Data.GenValidity.Sequence ()
7 import Data.GenValidity.Set ()
8 import Data.GenValidity.Text ()
9 import Data.List qualified as List
10 import Data.Text qualified as Text
11 import Data.Validity.Map ()
12 import Data.Validity.Set ()
13 import Data.Validity.Text ()
14 import GHC.Stack (HasCallStack)
15 import System.FilePath (joinPath, pathSeparator, (<.>), (</>))
16 import System.FilePath qualified as Sys
17 import Test.Syd
18
19 import Worksheets.Writing.Latin qualified
20
21 runPart :: Sys.FilePath -> TestDefM outers () ()
22 runPart part = do
23 descrPath <- getTestDescriptionPath
24 let dirPath =
25 List.reverse descrPath
26 <&> Text.unpack
27 . Text.replace
28 (Text.pack ".")
29 (Text.singleton pathSeparator)
30 & joinPath
31 let inpPath = "tests" </> dirPath </> part <.> "txt"
32 let outPath = "tests" </> dirPath </> part <.> "html"
33 it part do
34 goldenByteStringBuilderFile outPath $
35 Worksheets.Writing.Latin.worksheet inpPath
36
37 spec :: HasCallStack => Spec
38 spec = do
39 describe "frozen" do
40 describe "let-it-go" do
41 describe "en" do
42 runPart "part1"
43 runPart "part2"
44 describe "fr" do
45 runPart "part1"
46 runPart "part2"
47 runPart "part3"
48 runPart "part4"
49 runPart "part5"
50 runPart "part6"
51 runPart "part7"