dev

This module was made as a sandbox for the user Speedit. This documentation is kept to prevent redlinks.


-- <nowiki>
--------------------------------------------------------------------------------
-- COMMON INPUTS
--------------------------------------------------------------------------------
local PARAMETERS = {
    '""',
    '\'\'',
    '',
    '"value"',
    '\'value\'',
    'description',
    'name=""',
    'name=\'\'',
    'name=',
    'name="value"',
    'name=\'value\'',
    'name=description',
    'name=description=',
    'name&#61;""',
    'name&#61;\'\'',
    'name&#61;',
    'name&#61;"value"',
    'name&#61;\'value\'',
    'name&#61;description',
    'name&#61;description&#61;'
}

local PARAMETERS2 = table.concat(PARAMETERS, '|'):gsub('=', '{{=}}')

--------------------------------------------------------------------------------
-- COMMON OUTPUTS
--------------------------------------------------------------------------------
local TRANSCLUSION_MODE_OUTPUT = table.concat{
    '<code data-t-role="wrapper" data-t-mode="transclusion" style="all:unset;font-family:monospace;">',
        '<span data-t-role="opener">&#123;&#123;[[Template:title|title]]</span>',
        '<span data-t-role="parameter" data-t-index="1">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="2">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="3">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="4">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="5">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="6">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="7">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="8">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="9">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="10">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="11">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="12">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="13">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description=&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="14">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="15">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="16">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="17">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="18">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="19">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="20">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#61;&#62;</span>',
        '</span>',
        '<span data-t-role="closer">&#125;&#125;</span>',
    '</code>'
}

local MULTILINE_TRANSCLUSION_MODE_OUTPUT = table.concat{
    '<code data-t-role="wrapper" data-t-mode="transclusion" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
        '<span data-t-role="opener">&#123;&#123;[[Template:title|title]]</span>',
        '<span data-t-role="parameter" data-t-index="1" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="2" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="3" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="4" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="5" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="6" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="7" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="8" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="9" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="10" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="11" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="12" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="13" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description=&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="14" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="15" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="16" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="17" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="18" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="19" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="20" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#61;&#62;</span>',
        '</span>',
        '<span data-t-role="closer">&#125;&#125;</span>',
    '</code>'
}

local INVOCATION_MODE_OUTPUT = table.concat{
    '<code data-t-role="wrapper" data-t-mode="invocation" style="all:unset;font-family:monospace;">',
        '<span data-t-role="opener">&#123;&#123;#invoke:[[Module:module|module]]&#124;function</span>',
        '<span data-t-role="parameter" data-t-index="1">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="2">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="3">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="4">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="5">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="6">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="7">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="8">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="9">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="10">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="11">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="12">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="13">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description=&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="14">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="15">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="16">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="17">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="18">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="19">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="20">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#61;&#62;</span>',
        '</span>',
        '<span data-t-role="closer">&#125;&#125;</span>',
    '</code>'
}

local MULTILINE_INVOCATION_MODE_OUTPUT = table.concat{
    '<code data-t-role="wrapper" data-t-mode="invocation" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
        '<span data-t-role="opener">&#123;&#123;#invoke:[[Module:module|module]]&#124;function</span>',
        '<span data-t-role="parameter" data-t-index="1" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="2" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="3" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="4" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="5" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="6" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="7" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="8" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="9" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="10" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="11" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="12" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="13" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description=&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="14" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="15" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value"></span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="16" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;...&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="17" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="18" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-value">value</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="19" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#62;</span>',
        '</span>',
        '<span data-t-role="parameter" data-t-index="20" style="display:block;">',
            '&#124;',
            '<span data-t-role="parameter-name" style="font-weight:bold;">name</span>',
            ' = ',
            '<span data-t-role="parameter-description" style="opacity:0.65;">&#60;description&#61;&#62;</span>',
        '</span>',
        '<span data-t-role="closer">&#125;&#125;</span>',
    '</code>'
}

--------------------------------------------------------------------------------
-- TEST CASES
--------------------------------------------------------------------------------
return {
    main = {
        options = {
            mode = 'invocation',
            preprocess = true,
            nowiki = true
        },
        tests = {
            --------------------------------------------------------------------
            -- TRANSCLUSION MODE
            --------------------------------------------------------------------
            {
                '',
                '<strong class="error">Error: no title specified.</strong>'
            },
            {
                'title',
                table.concat{
                    '<code data-t-role="wrapper" data-t-mode="transclusion" style="all:unset;font-family:monospace;">',
                        '<span data-t-role="opener">&#123;&#123;[[Template:title|title]]</span>',
                        '<span data-t-role="closer">&#125;&#125;</span>',
                    '</code>'
                }
            },
            {
                table.concat({'title', PARAMETERS2}, '|'),
                TRANSCLUSION_MODE_OUTPUT
            },
            --------------------------------------------------------------------
            -- MULTILINE TRANSCLUSION MODE (FULL FLAG NAMES)
            --------------------------------------------------------------------
            {
                'multiline=true',
                '<strong class="error">Error: no title specified.</strong>'
            },
            {
                'multiline=true|title',
                table.concat{
                    '<code data-t-role="wrapper" data-t-mode="transclusion" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
                        '<span data-t-role="opener">&#123;&#123;[[Template:title|title]]</span>',
                        '<span data-t-role="closer">&#125;&#125;</span>',
                    '</code>'
                }
            },
            {
                table.concat({'multiline=true', 'title', PARAMETERS2}, '|'),
                MULTILINE_TRANSCLUSION_MODE_OUTPUT
            },
            --------------------------------------------------------------------
            -- MULTILINE TRANSCLUSION MODE (TRUNCATED FLAG NAMES)
            --------------------------------------------------------------------
            {
                'm=true',
                '<strong class="error">Error: no title specified.</strong>'
            },
            {
                'm=true|title',
                table.concat{
                    '<code data-t-role="wrapper" data-t-mode="transclusion" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
                        '<span data-t-role="opener">&#123;&#123;[[Template:title|title]]</span>',
                        '<span data-t-role="closer">&#125;&#125;</span>',
                    '</code>'
                }
            },
            {
                table.concat({'m=true', 'title', PARAMETERS2}, '|'),
                MULTILINE_TRANSCLUSION_MODE_OUTPUT
            },
            --------------------------------------------------------------------
            -- INVOCATION MODE (FULL FLAG NAMES)
            --------------------------------------------------------------------
            {
                'invocation=true',
                '<strong class="error">Error: no module specified.</strong>'
            },
            {
                'invocation=true|module',
                '<strong class="error">Error: no function specified.</strong>'
            },
            {
                'invocation=true|module|function',
                table.concat{
                    '<code data-t-role="wrapper" data-t-mode="invocation" style="all:unset;font-family:monospace;">',
                        '<span data-t-role="opener">&#123;&#123;#invoke:[[Module:module|module]]&#124;function</span>',
                        '<span data-t-role="closer">&#125;&#125;</span>',
                    '</code>'
                }
            },
            {
                table.concat({'invocation=true', 'module', 'function', PARAMETERS2}, '|'),
                INVOCATION_MODE_OUTPUT
            },
            --------------------------------------------------------------------
            -- INVOCATION MODE (TRUNCATED FLAG NAMES)
            --------------------------------------------------------------------
            {
                'i=true',
                '<strong class="error">Error: no module specified.</strong>'
            },
            {
                'i=true|module',
                '<strong class="error">Error: no function specified.</strong>'
            },
            {
                'i=true|module|function',
                table.concat{
                    '<code data-t-role="wrapper" data-t-mode="invocation" style="all:unset;font-family:monospace;">',
                        '<span data-t-role="opener">&#123;&#123;#invoke:[[Module:module|module]]&#124;function</span>',
                        '<span data-t-role="closer">&#125;&#125;</span>',
                    '</code>'
                }
            },
            {
                table.concat({'i=true', 'module', 'function', PARAMETERS2}, '|'),
                INVOCATION_MODE_OUTPUT
            },
            --------------------------------------------------------------------
            -- MULTILINE INVOCATION MODE (FULL FLAG NAMES)
            --------------------------------------------------------------------
            {
                'invocation=true|multiline=true',
                '<strong class="error">Error: no module specified.</strong>'
            },
            {
                'invocation=true|multiline=true|module',
                '<strong class="error">Error: no function specified.</strong>'
            },
            {
                'invocation=true|multiline=true|module|function',
                table.concat{
                    '<code data-t-role="wrapper" data-t-mode="invocation" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
                        '<span data-t-role="opener">&#123;&#123;#invoke:[[Module:module|module]]&#124;function</span>',
                        '<span data-t-role="closer">&#125;&#125;</span>',
                    '</code>'
                }
            },
            {
                table.concat({'invocation=true', 'multiline=true', 'module', 'function', PARAMETERS2}, '|'),
                MULTILINE_INVOCATION_MODE_OUTPUT
            },
            --------------------------------------------------------------------
            -- MULTILINE INVOCATION MODE (TRUNCATED FLAG NAMES)
            --------------------------------------------------------------------
            {
                'i=true|m=true',
                '<strong class="error">Error: no module specified.</strong>'
            },
            {
                'i=true|m=true|module',
                '<strong class="error">Error: no function specified.</strong>'
            },
            {
                'i=true|m=true|module|function',
                table.concat{
                    '<code data-t-role="wrapper" data-t-mode="invocation" data-t-multiline="data-t-multiline" style="all:unset;font-family:monospace;">',
                        '<span data-t-role="opener">&#123;&#123;#invoke:[[Module:module|module]]&#124;function</span>',
                        '<span data-t-role="closer">&#125;&#125;</span>',
                    '</code>'
                }
            },
            {
                table.concat({'i=true', 'm=true', 'module', 'function', PARAMETERS2}, '|'),
                MULTILINE_INVOCATION_MODE_OUTPUT
            }
        }
    }
}