tvl-depot/users/aspen/xanthous/test/Xanthous/Game/StateSpec.hs
Aspen Smith 82ecd61f5c chore(users): grfn -> aspen
Change-Id: I6c6847fac56f0a9a1a2209792e00a3aec5e672b9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10809
Autosubmit: aspen <root@gws.fyi>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
2024-02-14 19:37:41 +00:00

30 lines
1.2 KiB
Haskell

--------------------------------------------------------------------------------
module Xanthous.Game.StateSpec (main, test) where
--------------------------------------------------------------------------------
import Test.Prelude
--------------------------------------------------------------------------------
import Xanthous.Game.State
import Xanthous.Entities.Raws (raws)
import Xanthous.Generators.Level.LevelContents (entityFromRaw)
import Control.Monad.Random (evalRandT)
import System.Random (getStdGen)
--------------------------------------------------------------------------------
main :: IO ()
main = defaultMain test
test :: TestTree
test = testGroup "Xanthous.Game.StateSpec"
[ testGroup "entityTypeName"
[ testCase "for a creature" $ do
let gormlakRaw = raws ^?! ix "gormlak"
creature <- runRand $ entityFromRaw gormlakRaw
entityTypeName creature @?= "Creature"
, testCase "for an item" $ do
let stickRaw = raws ^?! ix "stick"
item <- runRand $ entityFromRaw stickRaw
entityTypeName item @?= "Item"
]
]
where
runRand x = evalRandT x =<< getStdGen