Fork of Tangara with customizations
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
tangara-fw/lib/lua-repl/t/plugin-repl-tests.lua

75 lines
1.4 KiB

-- vim:foldmethod=marker
local r = require 'repl' -- we don't call it 'repl' so we don't shadow
-- repl in the plugin environment
pcall(require, 'luarocks.loader')
require 'Test.More'
local utils = require 'test-utils'
plan(5)
local clone = r:clone()
do -- basic tests {{{
local with_plugin = clone:clone()
function with_plugin:foo()
end
local line_no
local _, err = pcall(function()
with_plugin:loadplugin(function()
line_no = utils.next_line_number()
function repl:foo()
end
end)
end)
like(err, string.format("%d: The 'foo' method already exists", line_no))
with_plugin:loadplugin(function()
function repl:bar()
return 17
end
end)
is(with_plugin:bar(), 17)
with_plugin:loadplugin(function()
repl.baz = 18
end)
is(with_plugin.baz, 18)
end -- }}}
do -- conflict tests {{{
local clone = r:clone()
local line_no
clone:loadplugin(function()
function repl:foo()
end
end)
local _, err = pcall(function()
clone:loadplugin(function()
line_no = utils.next_line_number()
function repl:foo()
end
end)
end)
like(err, tostring(line_no) .. ": The 'foo' method already exists")
end -- }}}
do -- proxy tests {{{
local clone = r:clone()
clone:loadplugin(function()
features = 'foo'
end)
clone:loadplugin(function()
ok(repl:hasfeature 'foo')
end)
end -- }}}