summaryrefslogtreecommitdiff
path: root/lib/lua-repl/t/sync-repl-tests.lua
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-12-13 16:10:08 +1100
committerjacqueline <me@jacqueline.id.au>2023-12-13 16:10:08 +1100
commit64b106c13e18c33be0f2b0de532054e0ed3f731d (patch)
treeb54b1c90d941bc456b4d51e864970720bdf2d648 /lib/lua-repl/t/sync-repl-tests.lua
parent5a2f0b08e0e3f20cda977b510b680d5843ae7283 (diff)
downloadtangara-fw-64b106c13e18c33be0f2b0de532054e0ed3f731d.tar.gz
add a cool lua repl
Diffstat (limited to 'lib/lua-repl/t/sync-repl-tests.lua')
-rw-r--r--lib/lua-repl/t/sync-repl-tests.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/lua-repl/t/sync-repl-tests.lua b/lib/lua-repl/t/sync-repl-tests.lua
new file mode 100644
index 00000000..d5249ec2
--- /dev/null
+++ b/lib/lua-repl/t/sync-repl-tests.lua
@@ -0,0 +1,52 @@
+-- vim:foldmethod=marker
+local sync = require 'repl.sync'
+pcall(require, 'luarocks.loader')
+require 'Test.More'
+
+plan(13)
+
+local clone = sync:clone()
+local resultlist = {}
+
+function clone:lines()
+ local index = 0
+ local function iterator(s)
+ index = index + 1
+ return s[index]
+ end
+
+ return iterator, {
+ 'return foo',
+ 'return 1',
+ 'return "bar"',
+ 'return {}',
+ 'return 1, 2, 3',
+ }
+end
+
+function clone:showprompt()
+end
+
+function clone:displayresults(results)
+ resultlist[#resultlist + 1] = results
+end
+
+clone:run()
+
+is(#resultlist, 5)
+is(resultlist[1].n, 1)
+is(resultlist[1][1], nil)
+
+is(resultlist[2].n, 1)
+is(resultlist[2][1], 1)
+
+is(resultlist[3].n, 1)
+is(resultlist[3][1], 'bar')
+
+is(resultlist[4].n, 1)
+is(type(resultlist[4][1]), 'table')
+
+is(resultlist[5].n, 3)
+is(resultlist[5][1], 1)
+is(resultlist[5][2], 2)
+is(resultlist[5][3], 3)