Module:TwitterSnowflake/testcases
Appearance
From Wikipedia, the free encyclopedia
-- Unit tests for [[Module:TwitterSnowflake]]. Click talk page to run tests. local p = require('Module:UnitTests') -- test snowflakeToDate function p:test_snowflakeToDate_only_id() -- default date format is "Month Day, Year" self:preprocess_equals('{{#invoke:TwitterSnowflake | snowflakeToDate | id_str = 1345021162959503360}}', 'January 1, 2021') end function p:test_snowflakeToDate_custom_output_format() -- tests date format "Day Month Year" self:preprocess_equals('{{#invoke:TwitterSnowflake | snowflakeToDate | id_str = 1345021162959503360 | format = %e %B %Y}}', ' 1 January 2021') end function p:test_snowflakeToDate_custom_epoch() -- uses Discord's epoch self:preprocess_equals('{{#invoke:TwitterSnowflake | snowflakeToDate | id_str = 797545051047460888 | epoch = 1420070400}}', 'January 9, 2021') end function p:test_snowflakeToDate_weird_breaking_date() -- this one used to break old versions of the script, outputting "April 11, 2011" self:preprocess_equals('{{#invoke:TwitterSnowflake | snowflakeToDate | id_str = 574608900537761792}}', 'March 8, 2015') end -- test getDate function p:test_getDate_date_off_by_five() -- date off by five days, so this returns "5" self:preprocess_equals('{{#invoke:TwitterSnowflake | getDate | id_str = 1345021162959503360 | date = January 6, 2021}}', '5') end function p:test_getDate_date_off_by_one() -- date off by one day, so this returns "1" self:preprocess_equals('{{#invoke:TwitterSnowflake | getDate | id_str = 1345021162959503360 | date = January 2, 2021}}', '1') end function p:test_getDate_date_match() -- date matches, so this returns "0" self:preprocess_equals('{{#invoke:TwitterSnowflake | getDate | id_str = 1345021162959503360 | date = January 1, 2021}}', '0') end function p:test_getDate_before_epoch() -- posted before epoch, so this returns "-1" (date isn't correct here, but that's irrelevant — it can't check it either way) self:preprocess_equals('{{#invoke:TwitterSnowflake | getDate | id_str = 20 | date = January 1, 2015}}', '-1') end function p:test_getDate_invalid_id_str() -- id_str is invalid, so this returns "-2" self:preprocess_equals('{{#invoke:TwitterSnowflake | getDate | id_str = 1345021162959503360?s=19 | date = January 1, 2021}}', '-2') end --sandbox tests for snowflakeToDate function p:test_zzsandbox_snowflakeToDate_only_id() -- default date format is "Month Day, Year" self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | snowflakeToDate | id_str = 1345021162959503360}}', 'January 1, 2021') end function p:test_zzsandbox_snowflakeToDate_custom_output_format() -- tests date format "Day Month Year" self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | snowflakeToDate | id_str = 1345021162959503360 | format = %e %B %Y}}', ' 1 January 2021') end function p:test_zzsandbox_snowflakeToDate_custom_epoch() -- uses Discord's epoch self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | snowflakeToDate | id_str = 797545051047460888 | epoch = 1420070400}}', 'January 9, 2021') end function p:test_zzsandbox_snowflakeToDate_weird_breaking_date() -- this one used to break old versions of the script, outputting "April 11, 2011" self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | snowflakeToDate | id_str = 574608900537761792}}', 'March 8, 2015') end --sandbox tests for getDate function p:test_zzsandbox_getDate_date_off_by_five() -- date off by five days, so this returns "5" self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | getDate | id_str = 1345021162959503360 | date = January 6, 2021}}', '5') end function p:test_zzsandbox_getDate_date_off_by_one() -- date off by one day, so this returns "1" self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | getDate | id_str = 1345021162959503360 | date = January 2, 2021}}', '1') end function p:test_zzsandbox_getDate_date_match() -- date matches, so this returns "0" self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | getDate | id_str = 1345021162959503360 | date = January 1, 2021}}', '0') end function p:test_zzsandbox_getDate_before_epoch() -- posted before epoch, so this returns "-1" (date isn't correct here, but that's irrelevant — it can't check it either way) self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | getDate | id_str = 20 | date = January 1, 2015}}', '-1') end function p:test_zzsandbox_getDate_invalid_id_str() -- id_str is invalid, so this returns "-2" self:preprocess_equals('{{#invoke:TwitterSnowflake/sandbox | getDate | id_str = 1345021162959503360?s=19 | date = January 1, 2021}}', '-2') end return p