diff options
Diffstat (limited to 'test/Spec.hs')
| -rw-r--r-- | test/Spec.hs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/test/Spec.hs b/test/Spec.hs index 9011aba..2a21d01 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -6,6 +6,7 @@ import Builtins import Tokenizer ( tokenize ) import Parser ( parse ) import Evaluator ( evaluate ) +import Lib ( runInlineScript ) import Utils import TestUtils @@ -18,8 +19,9 @@ tokenizeTests = TestLabel "tokenize" $ TestList $ map TestCase [ parseTests = TestLabel "parse" $ TestList $ map TestCase [ do got <- expectSuccessL $ parse ["(", "+", "1", "2", ")"] let expected = [ASTFunctionCall [ASTSymbol "+", ASTInteger 1, ASTInteger 2]] - assertEqual "" got expected, - do got <- expectErrorL $ parse ["(", "+", "1", "2"] + assertEqual "" got expected + + , do got <- expectErrorL $ parse ["(", "+", "1", "2"] let expected = "unbalanced function call" assertEqual "" got expected ] @@ -32,10 +34,19 @@ evaluateTests = TestLabel "evaluate" $ TestList $ map TestCase [ assertEqual "" (M.keys gotEnv) (M.keys env) ] +e2eTests = TestLabel "e2e" $ TestList $ map TestCase [ + do let env = M.fromList [("-", builtinSubtract2)] :: Env + let script = "(let sub2 (\\[a b] (- a b)))" + gotEnv <- expectSuccessL $ runInlineScript env script + let expectedEnvKeys = ["-", "sub2"] + assertEqual "" (M.keys gotEnv) expectedEnvKeys + ] + tests = [ - tokenizeTests, - parseTests, - evaluateTests + tokenizeTests + , parseTests + , evaluateTests + , e2eTests ] main :: IO () |
