Toggle menu
15
236
74
27.6K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Refer to
Module:GetShortDescription



-- Unit tests for [[Module:GetShortDescription]]. Run all tests on the talk page.
-- Due to the changable nature of short descriptions; some of these tests may need to be updated before running them.

local p = require('Module:UnitTests')

--[[ empty params ]]

function p:test__no_name_param()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes}}', '<span style="color:#d33">[[Module:GetShortDescription]] requires a page name (including namespace).</span>[[Category:Pages displaying alarming messages about Module:GetShortDescription]]', {nowiki = 1})
end

function p:test__no_name_value()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=}}', '<span style="color:#d33">[[Module:GetShortDescription]] requires a page name (including namespace).</span>[[Category:Pages displaying alarming messages about Module:GetShortDescription]]', {nowiki = 1})
end

function p:test__no_only_value()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|only=}}', "Explicit short description")
end

function p:test__no_prefer_value()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|prefer=}}', "Explicit short description")
end

function p:test__no_objectify_alarm_value()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|objectify_alarm=}}', '<span style="color:#d33">[[Module:GetShortDescription]] requires a page name (including namespace).</span>[[Category:Pages displaying alarming messages about Module:GetShortDescription]]', {nowiki = 1})
end

--[[ nonexistent page name ]]

function p:test__nonexistent_page_name()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Intentionally permanent red link}}', '')
end

--[[ unknown param offered ]]

function p:test__unknown_param_with_no_value_offered()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|unknown=}}', "Explicit short description")
end

function p:test__unknown_param_with_value_offered()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|unknown=unknown}}', "Explicit short description")
end

--[[ unknown param found ]]

function p:test__unknown_param_found()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description with unknown params}}', "Explicit short description with unknown params")
end

function p:test__complex_unknown_params_found()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description with complex unknown params}}', "Explicit short description with complex unknown params")
end

--[[ multiple short descriptions ]]

--[[ temporarily disabled re other solution required

function p:test__two_short_descriptions_numbered_after()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/two explicit short descriptions numbered after}}', "Explicit short description numbered second (used)")
end

function p:test__two_short_descriptions_numbered_before()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/two explicit short descriptions numbered before}}', "Explicit short description unnumbered second (used)")
end

]]

function p:test__two_short_description_templates()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/two explicit short description templates}}', "Explicit short description second (used)")
end

function p:test__two_short_description_templates__first_noreplace()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/two explicit short description templates first noreplace}}', "Explicit short description second (used)")
end

function p:test__two_short_description_templates__second_noreplace()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/two explicit short description templates second noreplace}}', "Explicit short description first (used)")
end

function p:test__three_short_description_templates__second_noreplace()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/three explicit short description templates second noreplace}}', "Explicit short description third (used)")
end

function p:test__three_short_description_templates__second_none__third_noreplace()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/three explicit short description templates second none third noreplace}}', "Explicit short description first (used)")
end

--[[ none but name ]]

function p:test__explicit_exists__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description}}', "Explicit short description")
end

function p:test__explicit_does_not_exist__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/no explicit short description}}', "")
end

function p:test__explicit_exists__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Wikipedia}}', "Free online crowdsourced encyclopedia")
end

function p:test__explicit_does_not_exist__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example}}', "Wikimedia disambiguation page")
end

--[[ name and only ]]

function p:test__only_explicit__explicit_exists__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|only=explicit}}', "Explicit short description")
end

function p:test__only_wikidata__explicit_exists__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|only=wikidata}}', "")
end

function p:test__only_explicit__explicit_does_not_exist__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/no explicit short description|only=explicit}}', "")
end

function p:test__only_wikidata__explicit_does_not_exist__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/no explicit short description|only=wikidata}}', "")
end

function p:test__only_explicit__explicit_exists__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Wikipedia|only=explicit}}', "Free online crowdsourced encyclopedia")
end

function p:test__only_wikidata__explicit_exists__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Wikipedia|only=wikidata}}', "free multilingual online encyclopedia")
end

function p:test__only_explicit__explicit_does_not_exist__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example|only=explicit}}', "")
end

function p:test__only_wikidata__explicit_does_not_exist__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example|only=wikidata}}', "Wikimedia disambiguation page")
end

--[[ name and prefer ]]

function p:test__prefer_explicit__explicit_exists__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|prefer=explicit}}', "Explicit short description")
end

function p:test__prefer_wikidata__explicit_exists__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|prefer=wikidata}}', "Explicit short description")
end

function p:test__prefer_explicit__explicit_does_not_exist__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/no explicit short description|prefer=explicit}}', "")
end

function p:test__prefer_wikidata__explicit_does_not_exist__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/no explicit short description|prefer=wikidata}}', "")
end

function p:test__prefer_explicit__explicit_exists__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Wikipedia|prefer=explicit}}', "Free online crowdsourced encyclopedia")
end

function p:test__prefer_wikidata__explicit_exists__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Wikipedia|prefer=wikidata}}', "free multilingual online encyclopedia")
end

function p:test__prefer_explicit__explicit_does_not_exist__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example|prefer=explicit}}', "Wikimedia disambiguation page")
end

function p:test__prefer_wikidata__explicit_does_not_exist__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example|prefer=wikidata}}', "Wikimedia disambiguation page")
end

--[[ conflicting params ]]
--[[ only=explicit and prefer=wikidata ]]

function p:test__conflicting__only_explicit__prefer_wikidata__explicit_exists__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|only=explicit|prefer=wikidata}}', "Explicit short description")
end

function p:test__conflicting__only_explicit__prefer_wikidata__explicit_does_not_exist__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/no explicit short description|only=explicit|prefer=wikidata}}', "")
end

function p:test__conflicting__only_explicit__prefer_wikidata__explicit_exists__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Wikipedia|only=explicit|prefer=wikidata}}', "Free online crowdsourced encyclopedia")
end

function p:test__conflicting__only_explicit__prefer_wikidata__explicit_does_not_exist__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example|only=explicit|prefer=wikidata}}', "")
end

--[[ only=wikidata and prefer=explicit ]]

function p:test__conflicting__only_wikidata__prefer_explicit__explicit_exists__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description|only=wikidata|prefer=explicit}}', "")
end

function p:test__conflicting__only_wikidata__prefer_explicit__explicit_does_not_exist__wikidata_does_not_exist()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/no explicit short description|only=wikidata|prefer=explicit}}', "")
end

function p:test__conflicting__only_wikidata__prefer_explicit__explicit_exists__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Wikipedia|only=wikidata|prefer=explicit}}', "free multilingual online encyclopedia")
end

function p:test__conflicting__only_wikidata__prefer_explicit__explicit_does_not_exist__wikidata_exists()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example|only=wikidata|prefer=explicit}}', "Wikimedia disambiguation page")
end

--[[ unusual explicit descriptions ]]

function p:test__only_explicit__undefined()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description undefined|only=explicit}}', "")
end

function p:test__only_explicit__empty()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description empty|only=explicit}}', "")
end

function p:test__only_explicit__none()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description none|only=explicit}}', "none")
end

function p:test__only_explicit__numbered()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description numbered|only=explicit}}', "Explicit short description numbered")
end

function p:test__only_explicit__complex()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description complex|only=explicit}}', "Explicit short description complex")
end

function p:test__only_explicit__complex__numbered()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description complex numbered|only=explicit}}', "Explicit short description complex numbered")
end

function p:test__only_explicit__numbered__empty()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description numbered empty|only=explicit}}', "")
end

function p:test__only_explicit__numbered__none()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description numbered none|only=explicit}}', "none")
end

function p:test__only_explicit__complex__empty()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description complex empty|only=explicit}}', "")
end

function p:test__only_explicit__complex__none()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description complex none|only=explicit}}', "none")
end

function p:test__only_explicit__complex__numbered__empty()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description complex numbered empty|only=explicit}}', "")
end

function p:test__only_explicit__complex__numbered__none()
	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Template:GetShortDescription/explicit short description complex numbered none|only=explicit}}', "none")
end

--[[ test the test; sanity check; should fail ]]

--function p:test__the_test()
--	self:preprocess_equals('{{#invoke:GetShortDescription|main|stringify=yes|name=Example}}', "test the test")
--end

--[[ foreign language wikidata ]]

-- Testing |lang_italic= |lang_nocat= |lang_size= |lang_cat= |lang_rtl= |lang_no= will require a wikidata description in a language other than English to be returned

return p