fieldify
Version:
Fieldify object manipulation & validator
72 lines (65 loc) • 2.24 kB
JavaScript
const data = [
{
"domain": "example.com",
"result": {
source: "example.com",
punycode: false,
validTLD: true,
org: 'example',
tld: 'com',
subDomain: ''
},
"error": false
},
{
"domain": "subdom.nested.example.co.uk",
"result": {
source: "subdom.nested.example.co.uk",
punycode: false,
validTLD: true,
org: 'example',
tld: 'co.uk',
subDomain: 'subdom.nested'
},
"error": false
},
// testing punycode
{ "domain": "xn--w4r85el8fhu5dnra.ch", "error": true, "options": { "$acceptPunycode": false } },
{ "domain": "xn--w4r85el8fhu5dnra.ch", "error": true },
{ "domain": "xn--w4r85el8fhu5dnra.ch", "error": false, "options": { "$acceptPunycode": true } },
// test sub domains
{ "domain": "test.test.example.ch", "error": true, "options": { "$allowSubDomains": false } },
{ "domain": "test.test.example.ch", "error": false, "options": { "$allowSubDomains": true } },
// test TLD
{ "domain": "test.test.example.ch", "error": true, "options": { "$acceptedTLDs": ["com"] } },
{ "domain": "test.test.example.ch", "error": false, "options": { "$acceptedTLDs": ["ch"] } },
{ "domain": "test.test.example.co.uk", "error": false, "options": { "$acceptedTLDs": ["co.uk"] } },
]
const tests = []
var count = 0
for (var item of data) {
const test = {
ref: "T00" + count,
description: `Testing ${item.domain}`,
schema: { test: { $type: "TLD", $required: true } },
data: { test: item.domain },
compileError: false,
error: item.error,
encodeError: false,
strictDecode: { test: item.result },
decode: { test: item.result },
strictVerify: { test: item.result },
verify: { test: item.result }
}
if (!item.result) {
delete test.strictDecode
delete test.decode
delete test.strictVerify
delete test.verify
}
if (item.options)
test.schema.test = { ...test.schema.test, ...item.options }
tests.push(test)
count++
}
module.exports = tests