Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Template invocation/testcases

From Wikipedia, the free encyclopedia
-- 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