diff --git a/tests/validations.test.js b/tests/validations.test.js index be0199f7a..13e4759a8 100644 --- a/tests/validations.test.js +++ b/tests/validations.test.js @@ -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 = [ diff --git a/utils/invalid-domains.json b/utils/invalid-domains.json new file mode 100644 index 000000000..4c49294be --- /dev/null +++ b/utils/invalid-domains.json @@ -0,0 +1,12 @@ +[ + "help", + "support", + "no-reply", + "noreply", + "notifications", + "notification", + "ww1", + "ww2", + "ww3", + "ww4" +] diff --git a/utils/validations.js b/utils/validations.js index c37a68925..d31f6b22c 100644 --- a/utils/validations.js +++ b/utils/validations.js @@ -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)), ]) ]), },