validate schema on module tests

This commit is contained in:
Luna 2022-12-07 15:26:11 -03:00
parent d0fba27097
commit 2d2a68b1c3
3 changed files with 42 additions and 33 deletions

View file

@ -2,44 +2,21 @@ TestSchemaValidator = {}
local config = require('config')
local function len(t)
local count = 0
for _ in pairs(t) do count = count + 1 end
return count
end
function pprint(t, ident)
local ident = ident or 0
if type(t) == 'table' then
local count = 0
for k, v in pairs(t) do
print(string.rep('\t', ident) .. k)
pprint(v, ident + 1)
count = count + 1
end
if count == 0 then
print('<empty table>')
end
else
print(string.rep('\t', ident) .. tostring(t))
end
end
function TestSchemaValidator:testBasicFields()
local errors = config.validateSchema({a={type='string'}}, {a='test'})
lu.assertIs(len(errors), 0)
lu.assertIs(table.len(errors), 0)
local errors = config.validateSchema({a={type='number'}}, {a=123})
lu.assertIs(len(errors), 0)
lu.assertIs(table.len(errors), 0)
local errors = config.validateSchema({a={type='string'}}, {a=123})
lu.assertIs(len(errors), 1)
lu.assertIs(table.len(errors), 1)
end
function TestSchemaValidator:testList()
local errors = config.validateSchema({a={type='list', schema={type='number'}}}, {a={1,2,3}})
lu.assertIs(len(errors), 0)
lu.assertIs(table.len(errors), 0)
local errors = config.validateSchema({a={type='list', schema={type='number'}}}, {a={1,2,3,'asd'}})
lu.assertIs(len(errors), 1)
lu.assertIs(table.len(errors), 1)
end
function TestSchemaValidator:testTable()
@ -60,7 +37,7 @@ function TestSchemaValidator:testTable()
{b=2}
}
)
lu.assertIs(len(errors), 0)
lu.assertIs(table.len(errors), 0)
local errors = config.validateSchema(
TEST_SCHEMA,
@ -68,5 +45,5 @@ function TestSchemaValidator:testTable()
{b='sex'}
}
)
lu.assertIs(len(errors), 1)
lu.assertIs(table.len(errors), 1)
end