From 73ae65e04f7c41dd676d3cbaf3885553352f688c Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Mon, 26 Sep 2022 11:35:17 +0300 Subject: Add e2e tests --- test/Spec.hs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'test/Spec.hs') 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 () -- cgit v1.3