diff --git a/tests/validations.test.js b/tests/validations.test.js index 219546bad..925e747e0 100644 --- a/tests/validations.test.js +++ b/tests/validations.test.js @@ -59,6 +59,7 @@ describe('validateDomainData', () => { { ...defaultDomain, name: 'help.baa' }, { ...defaultDomain, name: '_github-pages-challenge-is-a-dev' }, { ...defaultDomain, name: '_github-challenge-is-a-dev' }, + { ...defaultDomain, name: '_discord' }, ]; const validCases = [ @@ -86,6 +87,7 @@ describe('validateDomainData', () => { { ...defaultDomain, name: '_github-challenge-hello01-ga' }, { ...defaultDomain, name: '_github-challenge-hello01_ga' }, { ...defaultDomain, record: { TXT: ['foobar wow nice!!!', 'more text'] } }, + { ...defaultDomain, name: '_discord.subdomain' }, ]; it('should return false for invalid data', () => { diff --git a/utils/invalid-domains.json b/utils/invalid-domains.json index a8943f3c4..ef66a5517 100644 --- a/utils/invalid-domains.json +++ b/utils/invalid-domains.json @@ -14,5 +14,6 @@ "ww3", "ww4", "wwww", - "your-domain-name" + "your-domain-name", + "_discord" ] diff --git a/utils/validations.js b/utils/validations.js index 9a99343fa..11a5481d4 100644 --- a/utils/validations.js +++ b/utils/validations.js @@ -27,6 +27,11 @@ const validateMXRecord = type => and([ const checkRestrictedNames = R.complement(R.includes(R.__, INVALID_NAMES)) +const extraSupportedNames = [ + testRegex(/^_github(-pages)?-challenge-[a-z0-9-_]+$/i), // Exception for github verification records + R.equals('_discord'), +] + const validateDomainData = validate({ name: { reason: 'The name of the file is invalid. It must be lowercased, alphanumeric and each component must be more than 2 characters long', @@ -34,17 +39,15 @@ const validateDomainData = validate({ R.equals('@'), and([ R.is(String), + checkRestrictedNames, R.compose( R.all(or([ - and([ - testRegex(/^_github(-pages)?-challenge-[a-z0-9-_]+$/i), // Exception for github verification records - checkRestrictedNames, - ]), and([ R.compose(between(2, 100), R.length), testRegex(/^[a-z0-9-]+$/g), checkRestrictedNames, - ]) + ]), + ...extraSupportedNames, ])), R.split('.'), ),