Jump to content

Module:UnitTests/testcases: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
+strict so there will be failures when used with modules that also use strict; it would be nice to turn this on in the main module however we do not know how that will affect modules using that as all probably are not global friendly yet
disable the error functions to allow for the case to actually work on the talk in action
Line 106: Line 106:
end
end


--[=[
function p:error1()
function p:error1()
error("p:error1")
error("p:error1")
Line 145: Line 146:
error("p.test8")
error("p.test8")
end
end
--]=]


return p
return p

Revision as of 20:12, 8 February 2023

-- 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" ..
	"")
	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())
	]]
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