Module:Sandbox/User:Waddie96/testcases

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
-- Unit tests for [[Module:Boolify]]. Click talk page to run tests.
local p = require('Module:UnitTests')
local boolify = require('Module:Boolify')

-- Test: explicit boolean values
function p:test_booleans()
    self:equals(boolify(true), true)
    self:equals(boolify(false), false)
end

-- Test: numeric values
function p:test_numbers()
    self:equals(boolify(1), true)
    self:equals(boolify(42), true)
    self:equals(boolify(0), false)
    self:equals(boolify(-5), false)
end

-- Test: string values (truthy)
function p:test_strings_true()
    local trues = {'yes', 'Yes', 'y', 'true', 't', 'on', '1'}
    for _, v in ipairs(trues) do
        self:equals(boolify(v), true)
    end
end

-- Test: string values (falsy)
function p:test_strings_false()
    local falses = {'no', 'No', 'n', 'false', 'f', 'off', '0'}
    for _, v in ipairs(falses) do
        self:equals(boolify(v), false)
    end
end

-- Test: nil and empty string
function p:test_nil_and_empty()
    self:equals(boolify(nil), nil)
    self:equals(boolify(''), nil)  -- change to false if module treats empty string as false
end

-- Test: unrecognized string defaults
function p:test_default_value()
    self:equals(boolify('maybe', 'default'), 'default')
end

return p