Module:Television episode short description/testcases

-- Unit tests for [[Module:Television episode short description]]. Click talk page to run tests.
local p = require('Module:UnitTests')

function p:test_1_descriptions()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes', {
		{'', 'Television episode'},
		{'series_name=Lost', 'Episode of Lost'},
		{'series_name=Lost|season_num=1', 'Episode of the 1st season of Lost'},
		{'series_name=Lost|season_num=5|episode_num=4', '4th episode of the 5th season of Lost'},
		{'series_name=Firefly|season_num=1|season_num_uk=2|episode_num=1', '1st episode of the 1st season of Firefly'},
		{'series_name=Randall and Hopkirk (Deceased)|season_num=1|episode_num=1|not_dab=yes', '1st episode of the 1st season of Randall and Hopkirk (Deceased)'},
		{'series_name=Lost|special=yes', 'Special episode of Lost'},
		{'series_name=Lost|special=Recap', 'Recap episode of Lost'},
		{'series_name=WandaVision|limited=yes|episode_num=4', '4th episode of WandaVision'},
		{'series_name=WandaVision|limited=yes|episode_num=4, 5', '4th and 5th episodes of WandaVision'},
		{'series_name=Hawkeye (miniseries)|episode_num=4', '4th episode of Hawkeye'},
		{'series_name=[[Hawkeye (miniseries)|Hawkeye]]|episode_num=4', '4th episode of Hawkeye'},
		{'series_name=[[Hawkeye (2014 miniseries)|Hawkeye]]|episode_num=4', '4th episode of Hawkeye'},
    }, {nowiki=1})
end

function p:test_2_multi_part_episode()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes|series_name=Lost|season_num=3', {
		{'episode_num=22 and 23', '22nd and 23rd episodes of the 3rd season of Lost'},
		{'episode_num=22 / 23', '22nd and 23rd episodes of the 3rd season of Lost'},
		{'episode_num=22, 23', '22nd and 23rd episodes of the 3rd season of Lost'},
		{'episode_num=22 & 23', '22nd and 23rd episodes of the 3rd season of Lost'},
		{'episode_num=22 - 23', '22nd and 23rd episodes of the 3rd season of Lost'},
		{'episode_num=22 - 23', '22nd and 23rd episodes of the 3rd season of Lost'},
    }, {nowiki=1})
end

function p:test_3_uk_style()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes|series_name=The Office|season_num_uk=2', {
		{'', 'Episode of the 2nd series of The Office'},		
		{'episode_num=4', '4th episode of the 2nd series of The Office'},
		{'episode_num=4 and 5', '4th and 5th episodes of the 2nd series of The Office'},
    }, {nowiki=1})
end

function p:test_4_link_test()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes', {
		{'series_name=[[Lost]]', 'Episode of Lost'},
		{'series_name=[[Firefly (TV series)|Firefly]]|season_num=1|episode_num=1', '1st episode of the 1st season of Firefly'},
		{'series_name=[[Randall and Hopkirk (Deceased)]]|season_num=1|episode_num=1|not_dab=yes', '1st episode of the 1st season of Randall and Hopkirk (Deceased)'},
    }, {nowiki=1})
end

function p:test_5_decimal_numbers()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes|series_name=Lost', {		
		{'season_num=3|episode_num=1.2', '1st episode of the 3rd season of Lost'},
		{'season_num=3|episode_num=113.22', '113th episode of the 3rd season of Lost'},
		{'season_num=1.2|episode_num=1.2', '1st episode of the 1st season of Lost'},
		{'season_num=3|episode_num=22.1, 23.1', '22nd and 23rd episodes of the 3rd season of Lost'},
    }, {nowiki=1})
end

function p:test_6_invalid_characters_episode()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes|series_name=Lost|season_num=3', {			
		{'episode_num=14<ref>Episode test</ref>', '14th episode of the 3rd season of Lost'},
		{'episode_num=[[14]]', '14th episode of the 3rd season of Lost'},
		{'episode_num=[[test|14]]', '14th episode of the 3rd season of Lost'},
		{'episode_num=<ref>{{cite web |url=http://www.bcdb.com/cartoon/91394-Tricks_And_Treats.html | title=Test ref: season num}} Episode Profile</ref>', 'Episode of the 3rd season of Lost'},
		{'episode_num=[http://www.bcdb.com/cartoon/11394-Tricks_And_Treats.html]', 'Episode of the 3rd season of Lost'},
		{'episode_num={{ref|Five|5}}', 'Episode of the 3rd season of Lost'},
    }, {nowiki=1})
end

function p:test_7_invalid_characters_season()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes|series_name=Lost|episode_num=14', {	
		{'season_num=[[3]]', '14th episode of the 3rd season of Lost'},
		{'season_num=[[test|3]]', '14th episode of the 3rd season of Lost'},
		{'season_num=<ref>{{cite web |url=http://www.bcdb.com/cartoon/11394-Tricks_And_Treats.html | title=Test ref: season num}} Episode Profile</ref>', 'Episode of Lost'},
		{'season_num=[http://www.bcdb.com/cartoon/11394-Tricks_And_Treats.html]', 'Episode of Lost'},
		{'season_num={{ref|Five|5}}', 'Episode of Lost'},
    }, {nowiki=1})
end

function p:test_8_invalid_characters_series()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'getShortDescription|test=yes|season_num=3|episode_num=14', {	
		{'series_name=Lost{{ref|Alpha|α}}', '14th episode of the 3rd season of Lost'},
		{'series_name={{ref|Alpha|α}}', 'Television episode'},
		{'series_name=Lost<ref name="Episode title test">{{cite web|url=http://www.Wikipedia.org|title=Wikipedia}}</ref>', '14th episode of the 3rd season of Lost'},
		{'series_name=Lost[http://www.Wikipedia.org]', '14th episode of the 3rd season of Lost'},
		{'series_name=[http://www.Wikipedia.org]', 'Television episode'},
		{'series_name=[http://www.Wikipedia.org]', 'Television episode'}
    }, {nowiki=1})
end

function p:test_9_categories()
	self:preprocess_equals_sandbox_many('{{#invoke:Television episode short description', 'test|test=cat', {
		{'', '[[Category:Television episode articles with short description with no series name|Television episode short description/testcases]]'},
		{'series_name=Lost', '[[Category:Television episode articles with short description with no season number|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=1', '[[Category:Television episode articles with short description with no episode number|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=5|episode_num=4', '[[Category:Television episode articles with short description for single episodes|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=3|episode_num=22 and 23', '[[Category:Television episode articles with short description for multi-part episodes|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=3|episode_num=22 and 23', '[[Category:Television episode articles with short description for multi-part episodes|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=3|episode_num=22 and 23', '[[Category:Television episode articles with short description for multi-part episodes|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=3|episode_num=22 and 23', '[[Category:Television episode articles with short description for multi-part episodes|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=3|special=yes|episode_num=22', '[[Category:Television episode articles with short description for single episodes|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=3|limited=yes|episode_num=22', '[[Category:Television episode articles with short description for single episodes|Television episode short description/testcases]]'},
		{'series_name=Lost|season_num=3|limited=yes|episode_num=22 and 23', '[[Category:Television episode articles with short description for multi-part episodes|Television episode short description/testcases]]'},
    }, {nowiki=1})
end

return p