Skip to content

Commit

Permalink
refactor: change test files to prepare for validatorjs#1874
Browse files Browse the repository at this point in the history
  • Loading branch information
WikiRik authored Oct 25, 2022
1 parent 7b47f53 commit 11b8502
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 61 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@
"build:node": "babel src -d .",
"build": "run-p build:*",
"pretest": "npm run build && npm run lint",
"test": "nyc --reporter=cobertura --reporter=text-summary mocha --require @babel/register --reporter dot"
"test": "nyc --reporter=cobertura --reporter=text-summary mocha --require @babel/register --reporter dot --recursive"
},
"engines": {
"node": ">= 0.10"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
56 changes: 56 additions & 0 deletions test/testFunctions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import assert from 'assert';
import { format } from 'util';
import validator from '../src/index';

export default function test(options) {
const args = options.args || [];

args.unshift(null);

if (options.error) {
options.error.forEach((error) => {
args[0] = error;

try {
assert.throws(() => validator[options.validator](...args));
} catch (err) {
const warning = format(
'validator.%s(%s) passed but should error',
options.validator, args.join(', ')
);

throw new Error(warning);
}
});
}

if (options.valid) {
options.valid.forEach((valid) => {
args[0] = valid;

if (validator[options.validator](...args) !== true) {
const warning = format(
'validator.%s(%s) failed but should have passed',
options.validator, args.join(', ')
);

throw new Error(warning);
}
});
}

if (options.invalid) {
options.invalid.forEach((invalid) => {
args[0] = invalid;

if (validator[options.validator](...args) !== false) {
const warning = format(
'validator.%s(%s) passed but should have failed',
options.validator, args.join(', ')
);

throw new Error(warning);
}
});
}
}
File renamed without changes.
70 changes: 10 additions & 60 deletions test/validators.js → test/validators.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,60 +3,10 @@ import fs from 'fs';
import { format } from 'util';
import vm from 'vm';
import validator from '../src/index';
import test from './testFunctions';

let validator_js = fs.readFileSync(require.resolve('../validator.js')).toString();

function test(options) {
let args = options.args || [];
args.unshift(null);
if (options.error) {
options.error.forEach((error) => {
args[0] = error;
try {
assert.throws(() => validator[options.validator](...args));
} catch (err) {
let warning = format(
'validator.%s(%s) passed but should error',
options.validator, args.join(', ')
);
throw new Error(warning);
}
});
}
if (options.valid) {
options.valid.forEach((valid) => {
args[0] = valid;
if (validator[options.validator](...args) !== true) {
let warning = format(
'validator.%s(%s) failed but should have passed',
options.validator, args.join(', ')
);
throw new Error(warning);
}
});
}
if (options.invalid) {
options.invalid.forEach((invalid) => {
args[0] = invalid;
if (validator[options.validator](...args) !== false) {
let warning = format(
'validator.%s(%s) passed but should have failed',
options.validator, args.join(', ')
);
throw new Error(warning);
}
});
}
}

function repeat(str, count) {
let result = '';
for (; count; count--) {
result += str;
}
return result;
}

describe('Validators', () => {
it('should validate email addresses', () => {
test({
Expand All @@ -74,9 +24,9 @@ describe('Validators', () => {
'"foobar"@example.com',
'" foo m端ller "@example.com',
'"foo\\@bar"@example.com',
`${repeat('a', 64)}@${repeat('a', 63)}.com`,
`${repeat('a', 64)}@${repeat('a', 63)}.com`,
`${repeat('a', 31)}@gmail.com`,
`${'a'.repeat(64)}@${'a'.repeat(63)}.com`,
`${'a'.repeat(64)}@${'a'.repeat(63)}.com`,
`${'a'.repeat(31)}@gmail.com`,
'[email protected]',
'[email protected]',
'[email protected]',
Expand All @@ -90,10 +40,10 @@ describe('Validators', () => {
'[email protected].',
'[email protected]',
'gmailgmailgmailgmailgmail@gmail.com',
`${repeat('a', 64)}@${repeat('a', 251)}.com`,
`${repeat('a', 65)}@${repeat('a', 250)}.com`,
`${repeat('a', 64)}@${repeat('a', 64)}.com`,
`${repeat('a', 64)}@${repeat('a', 63)}.${repeat('a', 63)}.${repeat('a', 63)}.${repeat('a', 58)}.com`,
`${'a'.repeat(64)}@${'a'.repeat(251)}.com`,
`${'a'.repeat(65)}@${'a'.repeat(250)}.com`,
`${'a'.repeat(64)}@${'a'.repeat(64)}.com`,
`${'a'.repeat(64)}@${'a'.repeat(63)}.${'a'.repeat(63)}.${'a'.repeat(63)}.${'a'.repeat(58)}.com`,
'[email protected] m',
'[email protected] m',
'[email protected] m',
Expand Down Expand Up @@ -128,10 +78,10 @@ describe('Validators', () => {
'[email protected]',
'[email protected]',
'[email protected]',
`${repeat('a', 30)}@gmail.com`,
`${'a'.repeat(30)}@gmail.com`,
],
invalid: [
`${repeat('a', 31)}@gmail.com`,
`${'a'.repeat(31)}@gmail.com`,
'[email protected]',
'[email protected]',
'[email protected]',
Expand Down

0 comments on commit 11b8502

Please sign in to comment.