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

local test_link_cases = {
	{'philosophy', '[[philosophy]]'},
	{'Calamotropha punctivenellus', '[[Calamotropha punctivenellus]]'},
	{'non-article', '[[non-article]]'},
	{'Philosophy', '[[Philosophy]] [[File:Círculos Concéntricos.svg|11px]] [[Wikipedia:Vital articles/Level/1|1]]'},
	{'Food', '[[Food]] [[File:Círculos Concéntricos.svg|11px]] [[Wikipedia:Vital articles/Level/2#Everyday life|2]]'},
	{'Euclid', '[[Euclid]] [[File:Círculos Concéntricos.svg|11px]] [[Wikipedia:Vital articles/Level/3#Mathematicians|3]]'},
	{'Statue of Liberty', '[[Statue of Liberty]] [[File:Círculos Concéntricos.svg|11px]] [[Wikipedia:Vital articles/Level/4/Arts#Specific structures|4]]'},
	{'Cratonic sequence', '[[Cratonic sequence]] [[File:Círculos Concéntricos.svg|11px]] [[Wikipedia:Vital articles/Level/5/Physical sciences/Earth science#Stratigraphy|5]]'},
	{'Infinity', '[[Infinity]] [[File:Círculos Concéntricos.svg|11px]] [[Wikipedia:Vital articles/Level/3#Analysis|3]]'},
	{'1', '[[1]] [[File:Círculos Concéntricos.svg|11px]] [[Wikipedia:Vital articles/Level/4/Mathematics#Basics|4]]'}
}

local test_level_cases = {
	['Philosophy'] = 1,
	['Astronomy'] = 2,
	['Homer'] = 3,
	['Thallophyca'] = 0,
	['non-article'] = 0,
	['0'] = 3,
	['1'] = 4,
	['2666'] = 5,
}

-- Example unit test.
function p:test_link()
	for _, v in ipairs(test_link_cases) do
		local page, link_value = v[1], v[2]
		self:preprocess_equals('{{#invoke:Vital article|link|page=' .. page .. '}}', link_value)
	end
end

function p:test_link_sandbox()
	for _, v in ipairs(test_link_cases) do
		local page, link_value = v[1], v[2]
		self:preprocess_equals('{{#invoke:Vital article/sandbox|link|page=' .. page .. '}}', link_value)
	end
end

function p:test_link_normal_vs_sandbox()
	for _, v in ipairs(test_link_cases) do
		local page = v[1]
		self:preprocess_equals_preprocess(
			'{{#invoke:Vital article|link|page=' .. page .. '}}',
			'{{#invoke:Vital article/sandbox|link|page=' .. page .. '}}')
	end
end

--function p:test_levels()
--	for k, v in pairs(test_level_cases) do
--		self:preprocess_equals(
--			'{{#invoke:Vital article/sandbox|getLevel|page=' .. k .. '}}', tostring(v))
--	end
--end

return p