Toggle menu
15
236
75
27.7K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 05:34, 26 February 2025 by Prd (talk | contribs) (Created page with "-- Example Unit tests for Module:UnitTests. Click talk page to run tests. requirestrict local p = require('Module:UnitTests') local frame0 = mw.getCurrentFrame() local frame0_getTitle = frame0:getTitle() local getCurrentFrame_getTitle = mw.getCurrentFrame():getTitle() local arg = ... function p._test(frame) return "# " .. frame:getTitle() .. "\n" .. "# " .. frame0:getTitle() .. "\n" .. "# " .. frame0_getTitle .. "\n" .. "# " .. getCurrentFrame_getTitle...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Refer to
Module:UnitTests



-- Example Unit tests for [[Module:UnitTests]]. Click talk page to run tests.
require[[strict]]
local p = require('Module:UnitTests')

local frame0 = mw.getCurrentFrame()
local frame0_getTitle = frame0:getTitle()
local getCurrentFrame_getTitle = mw.getCurrentFrame():getTitle()
local arg = ...

function p._test(frame)
	return
		"# " .. frame:getTitle() .. "\n" ..
		"# " .. frame0:getTitle() .. "\n" ..
		"# " .. frame0_getTitle .. "\n" ..
		"# " .. getCurrentFrame_getTitle .. "\n" ..
		"# " .. mw.dumpObject(arg) .. "\n" ..
		""
end

function p._test0(frame)
	return
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# nil\n" ..
	""
end

function p.preprocess(frame)
	--return frame.args[1]
	return frame:preprocess(frame.args[1])
end

function p.p1(frame)
	return frame:preprocess('{{#invoke:UnitTests/testcases | _test}}')
end

function p.p2(frame)
	return frame:preprocess('{{#invoke:UnitTests/testcases/frame | _test}}')
end

function p:test()
	local testcases_expected_result = "" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		"# Module:UnitTests/testcases\n" ..
		""
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"", {nowiki=true})
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"", {combined=true})
	local testcases_frame_expected_result = "" ..
		"# Module:UnitTests/testcases/frame\n" ..
		"# Module:UnitTests/testcases/frame\n" ..
		"# Module:UnitTests/testcases/frame\n" ..
		"# Module:UnitTests/testcases/frame\n" ..
		""
	self:preprocess_equals('{{#invoke:UnitTests/testcases/frame | _test}}', "\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")
	self:equals("<nowiki>mw.getCurrentFrame():preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' )</nowiki>",
		mw.getCurrentFrame():preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' ),
		"\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")
	self:equals("<nowiki>frame0:preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' )</nowiki>",
		frame0:preprocess( '{{#invoke:UnitTests/testcases/frame | _test}}' ),
		"\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")
	--[[self:equals("<nowiki>frame0:expandTemplate{ title = '#invoke:UnitTests/testcases/frame', args = { '_test' } }</nowiki>",
		frame0:expandTemplate{ title = '#invoke:UnitTests/testcases/frame', args = { '_test' } },
		"\n" ..
		testcases_frame_expected_result ..
		"# nil\n" ..
	"")]]
	self:equals("require('Module:UnitTests/testcases/frame')._test(mw.getCurrentFrame())",
		"\n"..require('Module:UnitTests/testcases/frame')._test(mw.getCurrentFrame()),
		"\n" ..
		testcases_expected_result ..
		'# "Module:UnitTests/testcases/frame"\n' ..
	"")
	self:equals("p._test(frame0)",
		"\n"..p._test(frame0),
		"\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	self:equals("p._test(mw.getCurrentFrame())",
		"\n"..p._test(mw.getCurrentFrame()),
		"\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	--[[self:preprocess_equals('{{#invoke:UnitTests/testcases | _test0}}', "\n" ..
		testcases_expected_result ..
		"# nil\n" ..
	"")
	self:preprocess_equals('{{#invoke:UnitTests/testcases | _test0}}', "\n" .. p._test0())
	]]
	self:equals("Blatant fail", "<span>String 1</span>", "<span>String 2</span>")
end

--[=[
function p:error1()
	error("p:error1")
end

function p.error2()
	error("p.error2")
end

function p:error3()
	error("p:error3")
end

function p.error3()
	error("p.error3")
end

function p.error4()
	error("p.error4")
end

function p:error4()
	error("p:error4")
end

function p:test_error5()
	error("p:test_error5")
end

function p:_test6()
	error("p:_test6")
end

function p.ttest_error7()
	error("p.test_error7")
end

function p._test8()
	error("p.test8")
end
--]=]

return p