Jump to content

Module:Hatnote list/testcases: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
add some basic smoke tests
 
Added tests for punctuation collapse including with italics
 
Line 4: Line 4:


function suite:testAndList()
function suite:testAndList()
self:assertEquals("Foo, Bar, and Baz", mHatnoteList.andList({"Foo", "Bar", "Baz"}))
self:assertEquals(
"Foo, Bar, and Baz",
mHatnoteList.andList({"Foo", "Bar", "Baz"})
)
end
end


function suite:testOrList()
function suite:testOrList()
self:assertEquals("Foo, Bar, or Baz", mHatnoteList.orList({"Foo", "Bar", "Baz"}))
self:assertEquals(
"Foo, Bar, or Baz",
mHatnoteList.orList({"Foo", "Bar", "Baz"})
)
end
end


Line 16: Line 22:
mHatnoteList._forSee({"Foo", "Bar", "Baz", "Qux"})
mHatnoteList._forSee({"Foo", "Bar", "Baz", "Qux"})
)
)
end

function suite:testPunctuationCollapse()
self:assertEquals(
"For periods, see [[:Foo.]] and [[:Bar.]] " ..
"For question marks, see [[:Baz?]] and [[:Qux?]] " ..
"For exclamation marks, see [[:Oof!]] and [[:Rab!]]",
mHatnoteList._forSee({
"periods", "Foo.", "and", "Bar.",
"question marks", "Baz?", "and", "Qux?",
"exclamation marks", "Oof!", "and", "Rab!"
})
)
end

function suite:testPunctuationCollapseWithItalics()
self:assertEquals(
"For periods, see [[:Foo.|''Foo.'']] " ..
"For question marks, see [[:Bar?|''Bar?'']] " ..
"For exclamation marks, see [[:Baz!|''Baz!'']]",
mHatnoteList._forSee({
"periods", "Foo.|''Foo.''",
"question marks", "Bar?|''Bar?''",
"exclamation marks", "Baz!|''Baz!''"
})
)
end
end



Latest revision as of 22:54, 10 November 2023

local mHatnoteList = require('Module:Hatnote list/sandbox') -- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

function suite:testAndList()
	self:assertEquals(
		"Foo, Bar, and Baz",
		mHatnoteList.andList({"Foo", "Bar", "Baz"})
	)
end

function suite:testOrList()
	self:assertEquals(
		"Foo, Bar, or Baz",
		mHatnoteList.orList({"Foo", "Bar", "Baz"})
	)
end

function suite:testForSee()
	self:assertEquals(
		"For Foo, see [[:Bar]]. For Baz, see [[:Qux]].",
		mHatnoteList._forSee({"Foo", "Bar", "Baz", "Qux"})
	)
end

function suite:testPunctuationCollapse()
	self:assertEquals(
		"For periods, see [[:Foo.]] and [[:Bar.]] " ..
			"For question marks, see [[:Baz?]] and [[:Qux?]] " ..
			"For exclamation marks, see [[:Oof!]] and [[:Rab!]]",
		mHatnoteList._forSee({
			"periods", "Foo.", "and", "Bar.",
			"question marks", "Baz?", "and", "Qux?",
			"exclamation marks", "Oof!", "and", "Rab!"
		})
	)	
end

function suite:testPunctuationCollapseWithItalics()
	self:assertEquals(
		"For periods, see [[:Foo.|''Foo.'']] " ..
			"For question marks, see [[:Bar?|''Bar?'']] " ..
			"For exclamation marks, see [[:Baz!|''Baz!'']]",
		mHatnoteList._forSee({
			"periods", "Foo.|''Foo.''",
			"question marks", "Bar?|''Bar?''",
			"exclamation marks", "Baz!|''Baz!''"
		})
	)	
end

return suite