aboutsummaryrefslogtreecommitdiffstats
path: root/test/Spec.hs
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2022-09-26 11:35:17 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2022-12-05 14:21:53 +0200
commit73ae65e04f7c41dd676d3cbaf3885553352f688c (patch)
tree4f59a4a6163e9948b8fffd06fc70fc3fba090960 /test/Spec.hs
parent158b202ba113914a8aa1fc7a8a410d98bfb18f5b (diff)
Add e2e tests
Diffstat (limited to 'test/Spec.hs')
-rw-r--r--test/Spec.hs21
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 ()