Module:Highest archive number/testcases

-- Unit tests for Module:Highest archive number. Click on the talk page to -- run the tests.

local han = require('Module:Highest archive number/sandbox') local ScribuntoUnit = require('Module:ScribuntoUnit') local suite = ScribuntoUnit:new

-- Monkey patch mw.title.new local existingPages = {} local oldTitleNew = mw.title.new mw.title.new = function(page) local title = oldTitleNew(page) rawset(title, "exists", existingPages[page] ~= nil) return title end

-- Test data local NO_ARCHIVES = {}

local ARCHIVES_1_TO_5 = { ["Talk:Foo/Archive 1"] = true, ["Talk:Foo/Archive 2"] = true, ["Talk:Foo/Archive 3"] = true, ["Talk:Foo/Archive 4"] = true, ["Talk:Foo/Archive 5"] = true, }

local ARCHIVES_3_TO_5 = { ["Talk:Foo/Archive 3"] = true, ["Talk:Foo/Archive 4"] = true, ["Talk:Foo/Archive 5"] = true, }

-- Tests function suite:testNoArchives existingPages = NO_ARCHIVES self:assertEquals(han._main("Talk:Foo/Archive "), nil) end

function suite:testArchivesStartingFromOne existingPages = ARCHIVES_1_TO_5 self:assertEquals(han._main("Talk:Foo/Archive "), 5) end

function suite:testArchivesStartingFromThreeWithCustomStart existingPages = ARCHIVES_3_TO_5 self:assertEquals(han._main("Talk:Foo/Archive ", 3), 5) end

function suite:testMain existingPages = ARCHIVES_3_TO_5 local frame = mw.getCurrentFrame local childFrame = frame:newChild{ title = "Module:Highest archive number", args = {"Talk:Foo/Archive ", start="3"} }	self:assertEquals(han.main(childFrame), 5) end

function suite:testWrapperTemplate existingPages = ARCHIVES_1_TO_5 local frame = mw.getCurrentFrame local parentFrame = frame:newChild{ title = "Template:Highest archive number", args = {"Talk:Foo/Archive "} }	local childFrame = parentFrame:newChild{ title = "Module:Highest archive number", args = {} }	self:assertEquals(han.main(childFrame), 5) end

return suite