89 lines
1.8 KiB
JavaScript
89 lines
1.8 KiB
JavaScript
/* eslint camelcase: 0 */
|
|
const AJV = require('ajv');
|
|
const assert = require('assert');
|
|
const {
|
|
EnvKeys,
|
|
EnvObject
|
|
} = require('../deployment/config-env');
|
|
|
|
const ajv = new AJV({allErrors: true});
|
|
|
|
// EnvKeys
|
|
exports.test_env_keys_valid = () => {
|
|
const isValid = ajv.validate(EnvKeys, [
|
|
'FOO',
|
|
'BAR'
|
|
]);
|
|
assert.equal(isValid, true);
|
|
};
|
|
|
|
exports.test_env_keys_too_short = () => {
|
|
const isValid = ajv.validate(EnvKeys, [
|
|
'FOO',
|
|
''
|
|
]);
|
|
assert.equal(isValid, false);
|
|
assert.equal(ajv.errors[0].keyword, 'minLength');
|
|
};
|
|
|
|
exports.test_env_keys_too_long = () => {
|
|
const isValid = ajv.validate(EnvKeys, [
|
|
'FOO',
|
|
'A'.repeat(257)
|
|
]);
|
|
assert.equal(isValid, false);
|
|
assert.equal(ajv.errors[0].keyword, 'maxLength');
|
|
};
|
|
|
|
exports.test_env_keys_invalid_chars = () => {
|
|
const isValid = ajv.validate(EnvKeys, [
|
|
'FOO',
|
|
'BA,D'
|
|
]);
|
|
assert.equal(isValid, false);
|
|
assert.equal(ajv.errors[0].keyword, 'pattern');
|
|
};
|
|
|
|
exports.test_env_keys_invalid_type = () => {
|
|
const isValid = ajv.validate(EnvKeys, [
|
|
'FOO',
|
|
true
|
|
]);
|
|
assert.equal(isValid, false);
|
|
assert.equal(ajv.errors[0].keyword, 'type');
|
|
};
|
|
|
|
exports.test_env_keys_non_unique = () => {
|
|
const isValid = ajv.validate(EnvKeys, [
|
|
'FOO',
|
|
'FOO'
|
|
]);
|
|
assert.equal(isValid, false);
|
|
assert.equal(ajv.errors[0].keyword, 'uniqueItems');
|
|
};
|
|
|
|
// EnvObject
|
|
exports.test_env_object_valid = () => {
|
|
const isValid = ajv.validate(EnvObject, {
|
|
FOO: 'BAR',
|
|
BAZ: '@secret'
|
|
});
|
|
assert.equal(isValid, true);
|
|
};
|
|
|
|
exports.test_env_object_bad_type = () => {
|
|
const isValid = ajv.validate(EnvObject, {
|
|
FOO: true
|
|
});
|
|
assert.equal(isValid, false);
|
|
assert.equal(ajv.errors[0].keyword, 'type');
|
|
};
|
|
|
|
exports.test_env_object_too_long = () => {
|
|
const isValid = ajv.validate(EnvObject, {
|
|
FOO: 'a'.repeat(70000)
|
|
});
|
|
assert.equal(isValid, false);
|
|
assert.equal(ajv.errors[0].keyword, 'maxLength');
|
|
};
|