-- Unit tests for [[Module:Template invocation]]. Click talk page to run tests.
local ScribuntoUnit = require('Module:ScribuntoUnit')
local p = ScribuntoUnit:new()
local protect = require('Module:Protect')
local function nw(o)
return mw.text.nowiki(tostring(o))
end
local function test(a, expected)
local mTemplateInvocation = require('Module:Template invocation')
local mTemplateInvocation2 = require('Module:Template invocation/sandbox')
local liveRes = protect(mTemplateInvocation.invocation)('foo', a)
local sandboxRes = protect(mTemplateInvocation2.invocation)('foo', a)
local message = 'Expected ' .. nw(expected) .. '. Got '
p:assertEquals(expected, liveRes, message .. nw(liveRes) .. ' from live module.')
p:assertEquals(expected, sandboxRes, message .. nw(sandboxRes) .. ' from sandbox.')
end
function p:test_hello()
local a = {'bar', 'baz', abc = 'def'}; a[6]=666; a[7]=777; a['7']='777s'; a[3]=333; a['4']='444s'
return test(a, '{{foo|bar|baz|333|6=666 |7=777 |4=444s |7=777s |abc=def}}')
end
function p:test_equals_sign()
local a = {'bar', 'baz', '{{=}}'}
return test(a, '{{foo|bar|baz|3={{=}}}}')
end
function p:test_numbered()
local a = {}
a[1] = 'aaa'
a[2] = 'bbb'
a[5] = 'eee'
return test(a, '{{foo|aaa|bbb|5=eee}}')
end
return p