about summary refs log tree commit diff
path: root/users/grfn/xanthous/test/Xanthous/Entities
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2021-11-13T15·44-0500
committergrfn <grfn@gws.fyi>2021-11-13T15·57+0000
commit1af67d9ca76e49198b8b8137e9fd24dfa4812203 (patch)
tree6abe4b3f80c894e317e7f35cff3d89adcc6c2d83 /users/grfn/xanthous/test/Xanthous/Entities
parente2f8939a9e5c1014bc8ffd415e5713b6f4f6ba47 (diff)
feat(gs/xanthous): Add a Husk creature, with limited generation r/3061
Add a new "husk" creature raw, limited to only being generated on levels
>= 1, including support for actually doing that limiting.

These guys are gonna get daggers next!

Change-Id: Ic4b58dc7ee36b50ced60fec6912cd1b46269d55c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3868
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Diffstat (limited to 'users/grfn/xanthous/test/Xanthous/Entities')
-rw-r--r--users/grfn/xanthous/test/Xanthous/Entities/RawTypesSpec.hs28
1 files changed, 28 insertions, 0 deletions
diff --git a/users/grfn/xanthous/test/Xanthous/Entities/RawTypesSpec.hs b/users/grfn/xanthous/test/Xanthous/Entities/RawTypesSpec.hs
new file mode 100644
index 000000000000..f5feb8a506db
--- /dev/null
+++ b/users/grfn/xanthous/test/Xanthous/Entities/RawTypesSpec.hs
@@ -0,0 +1,28 @@
+--------------------------------------------------------------------------------
+module Xanthous.Entities.RawTypesSpec (main, test) where
+--------------------------------------------------------------------------------
+import           Test.Prelude
+--------------------------------------------------------------------------------
+import           Xanthous.Entities.RawTypes
+--------------------------------------------------------------------------------
+
+main :: IO ()
+main = defaultMain test
+
+test :: TestTree
+test = testGroup "Xanthous.Entities.RawTypesSpec"
+  [ testGroup "CreatureGenerateParams"
+    [ testBatch $ monoid @CreatureGenerateParams mempty
+    , testGroup "canGenerate"
+      [ testProperty "no bounds" $ \level ->
+          let gps = CreatureGenerateParams Nothing Nothing
+          in canGenerate level gps
+      , testProperty "min bound" $ \level minB ->
+          let gps = CreatureGenerateParams (Just minB) Nothing
+          in canGenerate level gps === (level >= minB)
+      , testProperty "max bound" $ \level maxB ->
+          let gps = CreatureGenerateParams Nothing (Just maxB)
+          in canGenerate level gps === (level <= maxB)
+      ]
+    ]
+  ]