diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2022-09-26 12:30:50 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2022-12-05 14:21:53 +0200 |
| commit | 3f5b15b15fbca3dac18f3f5cb39b7826924ff175 (patch) | |
| tree | 6c009ba1c67db2307aa5f3c1b17a71b93512aa0e /test/Spec.hs | |
| parent | 73ae65e04f7c41dd676d3cbaf3885553352f688c (diff) | |
Return evaled ASTs from runInlineScript
Diffstat (limited to 'test/Spec.hs')
| -rw-r--r-- | test/Spec.hs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/test/Spec.hs b/test/Spec.hs index 2a21d01..6e8c9bf 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -10,13 +10,13 @@ import Lib ( runInlineScript ) import Utils import TestUtils -tokenizeTests = TestLabel "tokenize" $ TestList $ map TestCase [ +tokenizeTests = testGroup "tokenize" [ do got <- expectSuccessL $ tokenize "(+ 1 (- 10 5))" let expected = ["(", "+", "1", "(", "-", "10", "5", ")", ")"] assertEqual "" got expected ] -parseTests = TestLabel "parse" $ TestList $ map TestCase [ +parseTests = testGroup "parse" [ do got <- expectSuccessL $ parse ["(", "+", "1", "2", ")"] let expected = [ASTFunctionCall [ASTSymbol "+", ASTInteger 1, ASTInteger 2]] assertEqual "" got expected @@ -26,7 +26,7 @@ parseTests = TestLabel "parse" $ TestList $ map TestCase [ assertEqual "" got expected ] -evaluateTests = TestLabel "evaluate" $ TestList $ map TestCase [ +evaluateTests = testGroup "evaluate" [ do let env = M.fromList [("+", builtinAdd2)] :: Env (gotEnv, gotAST) <- expectSuccessL $ evaluate env (ASTFunctionCall [ASTSymbol "+", ASTInteger 1, ASTInteger 2]) let expectedAST = ASTInteger 3 @@ -34,14 +34,17 @@ evaluateTests = TestLabel "evaluate" $ TestList $ map TestCase [ assertEqual "" (M.keys gotEnv) (M.keys env) ] -e2eTests = TestLabel "e2e" $ TestList $ map TestCase [ +e2eTests = testGroup "e2e" [ do let env = M.fromList [("-", builtinSubtract2)] :: Env - let script = "(let sub2 (\\[a b] (- a b)))" - gotEnv <- expectSuccessL $ runInlineScript env script + let script1 = "(let sub2 (\\[a b] (- a b)))\n(sub2 3 2)" + (gotEnv, gotASTs) <- expectSuccessL $ runInlineScript env script1 let expectedEnvKeys = ["-", "sub2"] assertEqual "" (M.keys gotEnv) expectedEnvKeys + assertEqual "" (last gotASTs) (ASTInteger 1) ] +testGroup label xs = TestLabel label $ TestList $ map TestCase xs + tests = [ tokenizeTests , parseTests |
