module Main where
import Polysemy.Test (unitTest)
import Ribosome.Host.Test.ApiInfoTest (test_parseType)
import Ribosome.Host.Test.AsyncTest (test_async)
import Ribosome.Host.Test.AtomicTest (test_atomic)
import Ribosome.Host.Test.AutocmdTest (test_autocmd)
import Ribosome.Host.Test.CommandArgsTest (test_args)
import Ribosome.Host.Test.CommandBangTest (test_bang)
import Ribosome.Host.Test.CommandCompleteTest (test_complete)
import Ribosome.Host.Test.CommandModsTest (test_mods)
import Ribosome.Host.Test.CommandParamErrorTest (test_paramError)
import Ribosome.Host.Test.CommandRangeTest (test_range)
import Ribosome.Host.Test.CommandRegisterTest (test_register)
import Ribosome.Host.Test.EventTest (test_errorEvent)
import Ribosome.Host.Test.FunctionTest (test_function)
import Ribosome.Host.Test.LogTest (test_logFile)
import Ribosome.Host.Test.MaybeParamTest (test_maybeParams)
import Ribosome.Host.Test.NotifyTest (test_notify)
import Test.Tasty (TestTree, defaultMain, testGroup)
tests :: TestTree
tests =
testGroup "host" [
unitTest "parse api info types" test_parseType,
unitTest "function" test_function,
unitTest "function with Maybe params" test_maybeParams,
unitTest "async function" test_async,
testGroup "command" [
unitTest "args" test_args,
unitTest "bang" test_bang,
unitTest "mods" test_mods,
unitTest "range" test_range,
unitTest "register" test_register,
unitTest "errors" test_paramError,
unitTest "complete" test_complete
],
unitTest "autocmd" test_autocmd,
unitTest "notify" test_notify,
unitTest "error event" test_errorEvent,
unitTest "atomic" test_atomic,
unitTest "log to file" test_logFile
]
main :: IO ()
main =
defaultMain tests