ribosome-test-0.4.0.0: test/Ribosome/Test/SyntaxTest.hs
module Ribosome.Test.SyntaxTest where
import TestError (TestError)
import Hedgehog (TestT)
import Chiasma.Data.TmuxError (TmuxError)
import Chiasma.Test.Tmux (TmuxTestConf(..))
import Ribosome.Api.Buffer (setCurrentBufferContent)
import Ribosome.Api.Syntax (executeSyntax)
import Ribosome.Control.Monad.Ribo (Ribo)
import Ribosome.Data.Syntax (
Syntax(Syntax),
syntaxHighlight,
syntaxMatch,
)
import Ribosome.Error.Report.Class (ReportError(..))
import Ribosome.System.Time (sleep)
import Ribosome.Test.Embed (defaultTestConfig)
import Ribosome.Test.Run (UnitTest)
import Ribosome.Test.Screenshot (awaitScreenshot)
import Ribosome.Test.Tmux (tmuxSpec')
data SyntaxSpecError =
Test TestError
|
Tmux TmuxError
deepPrisms ''SyntaxSpecError
instance ReportError SyntaxSpecError where
errorReport _ =
undefined
syntax :: Syntax
syntax =
Syntax [syntaxMatch "TestColons" "::"] [syntaxHighlight "TestColons"
[("cterm", "reverse"), ("ctermfg", "1"), ("gui", "reverse"), ("guifg", "#dc322f")]] []
syntaxSpec :: TestT (Ribo () SyntaxSpecError) ()
syntaxSpec = do
lift (setCurrentBufferContent ["function :: String -> Int", "function _ = 5"])
_ <- lift (executeSyntax syntax)
sleep 1
awaitScreenshot "syntax" False 0
test_syntax :: UnitTest
test_syntax =
tmuxSpec' def { ttcWidth = 300, ttcHeight = 51, ttcGui = False } (defaultTestConfig "syntax") def syntaxSpec