Toggle menu
14
229
69
27.1K
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 04:20, 10 March 2025 by Prd (talk | contribs) (Created page with "local mAbout = require('Module:About/sandbox') local about = mAbout._about local ScribuntoUnit = require('Module:ScribuntoUnit') local suite = ScribuntoUnit:new() -------------------------------------------------------------------------------- -- Basic functionality -------------------------------------------------------------------------------- function suite:testBasicBlank() local result = about() --Current functionality. Should probably throw an error if blank in...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Refer to
Module:About



local mAbout = require('Module:About/sandbox')
local about = mAbout._about
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()


--------------------------------------------------------------------------------
-- Basic functionality
--------------------------------------------------------------------------------

function suite:testBasicBlank()
	local result = about()
	--Current functionality. Should probably throw an error if blank in future.
	self:assertStringContains('For other uses, see [[:About/testcases (disambiguation)]].', result, true)
end

function suite:testBasicUse1()
	--Article namespace
	local result = about({
			[1] = 'USE1'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For other uses, see [[:About/testcases (disambiguation)]].', result, true)
	--Category namespace
	result = about({
			[1] = 'USE1'
		}, {PageType = 'category'})
	self:assertStringContains('This category is about USE1. For other uses, see [[:About/testcases (disambiguation)]].', result, true)
	--All other namespaces
	result = about({
			[1] = 'USE1'
		}, {PageType = 'page'})
	self:assertStringContains('This page is about USE1. For other uses, see [[:About/testcases (disambiguation)]].', result, true)
end

function suite:testBasicUse2()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:About/testcases (disambiguation)]].', result, true)
end

function suite:testBasicPage1()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]].', result, true)
end

function suite:testBasicUse3()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1',
			[4] = 'USE3'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]]. For USE3, see [[:About/testcases (disambiguation)]]', result, true)
end

function suite:testBasicPage2()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1',
			[4] = 'USE3',
			[5] = 'PAGE2'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]]. For USE3, see [[:PAGE2]]', result, true)
end

--------------------------------------------------------------------------------
-- "and" functionality
--------------------------------------------------------------------------------

function suite:testAnd1And()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1',
			[4] = 'and',
			[5] = 'PAGE2'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]] and [[:PAGE2]]', result, true)
end

function suite:testAnd2Ands()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1',
			[4] = 'and',
			[5] = 'PAGE2',
			[6] = 'and',
			[7] = 'PAGE3'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]], [[:PAGE2]], and [[:PAGE3]]', result, true)
end

function suite:testAnd3Ands()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1',
			[4] = 'and',
			[5] = 'PAGE2',
			[6] = 'and',
			[7] = 'PAGE3',
			[8] = 'and',
			[9] = 'PAGE4'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]], [[:PAGE2]], [[:PAGE3]], and [[:PAGE4]]', result, true)
end

function suite:testAnd1And1BeforeFor()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1',
			[4] = 'and',
			[5] = 'PAGE2',
			[6] = 'USE3',
			[7] = 'PAGE3'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]] and [[:PAGE2]]. For USE3, see [[:PAGE3]].', result, true)
end

function suite:testAnd1And1BeforeAnd1()
	local result = about({
			[1] = 'USE1',
			[2] = 'USE2',
			[3] = 'PAGE1',
			[4] = 'and',
			[5] = 'PAGE2',
			[6] = 'USE3',
			[7] = 'PAGE3',
			[8] = 'and',
			[9] = 'PAGE4'
		}, {PageType = 'article'})
	self:assertStringContains('This article is about USE1. For USE2, see [[:PAGE1]] and [[:PAGE2]]. For USE3, see [[:PAGE3]] and [[:PAGE4]].', result, true)
end

--------------------------------------------------------------------------------
-- otherText functionality
--------------------------------------------------------------------------------

function suite:testOtherText()
	local result = about({
			[1] = 'USE1',
			[3] = 'PAGE1'
		}, {
			otherText = 'other values of otherText',
			PageType = 'article'
		})
	self:assertStringContains('This article is about USE1. For other values of otherText, see [[:PAGE1]]', result, true)
end


--------------------------------------------------------------------------------
-- otherText functionality
--------------------------------------------------------------------------------

function suite:testNoSelfref()
	local result = about({
			[1] = 'USE1',
			[2] = 'PAGE1',
		})
	self:assertNotStringContains('selfref', result, true)
end

function suite:testSelfref()
	local result = about({
			[1] = 'USE1',
			[2] = 'PAGE1',
			['selfref'] = 'true'
		})
	self:assertStringContains('selfref', result, true)
end

--------------------------------------------------------------------------------
-- Defaulting functionality
--------------------------------------------------------------------------------

--TODO

--------------------------------------------------------------------------------
return suite