validations: adds restrictions to allowed subdomain names

This commit is contained in:
Akshay Nair
2021-09-06 16:45:38 +05:30
parent ca643bba35
commit 1e77efae8b
3 changed files with 16 additions and 0 deletions
+2
View File
@@ -1,4 +1,5 @@
const { validateDomainData, isValidDomain } = require('../utils/validations');
const INVALID_NAMES = require('../utils/invalid-domains.json');
const defaultDomain = {
name: 'aaa',
@@ -52,6 +53,7 @@ describe('validateDomainData', () => {
{ ...defaultDomain, record: { CNAME: 'https://foobar.com' } },
{ ...defaultDomain, record: { URL: 'foobar.com' } },
{ ...defaultDomain, record: { CNAME: 'foobar.com', A: ['11.22.22.33'] } },
...INVALID_NAMES.map(name => ({ ...defaultDomain, name })).slice(0, 1),
];
const validCases = [
+12
View File
@@ -0,0 +1,12 @@
[
"help",
"support",
"no-reply",
"noreply",
"notifications",
"notification",
"ww1",
"ww2",
"ww3",
"ww4"
]
+2
View File
@@ -1,6 +1,7 @@
const R = require('ramda');
const { VALID_RECORD_TYPES } = require('./constants');
const { or, and, validate, between, testRegex, withLengthEq, withLengthGte } = require('./helpers');
const INVALID_NAMES = require('./invalid-domains.json');
const isValidURL = testRegex(/^https?:\/\//ig);
@@ -41,6 +42,7 @@ const validateDomainData = validate({
and([
R.compose(between(2, 100), R.length),
testRegex(/^[a-z0-9-]+$/g),
R.complement(R.includes(R.__, INVALID_NAMES)),
])
]),
},