lara-validator
Version:
Validating data based on Laravel validation style
164 lines (153 loc) • 6.81 kB
JavaScript
import testHelper from "./testHelper";
describe('wrappers.not_regex', () => {
describe('one layer data', () => {
describe('expect [true]', () => {
const expect = { result: true, fail: [] };
const testCases = [
{mail: 'us-user@yahoo.com'},
{mail: 'tw-user@yahoo.com.tw'},
{mail: 'aws123@amazon.com'},
{mail: 'employee@company.com'},
{mail: '123@123.com'},
{mail: '0928374094'},
{mail: 0},
{mail: 41},
{mail: {}},
{mail: []},
{mail: undefined},
{mail: null},
{mail: new Date('2019-03-01')},
];
const nullTestCases = [
{mail: null},
];
testHelper({
parentPath: [],
fieldName: 'mail',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: false,
presentOnly: false
}, testCases, expect);
testHelper({
parentPath: [],
fieldName: 'mail',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: true,
presentOnly: false
}, nullTestCases, expect);
});
describe('expect [false]', () => {
const expect = { result: false, fail: [['mail']] };
const testCases = [
{mail: '123@gmail.com'},
{mail: 'user@gmail.com'},
{mail: 'employee@gmail.com'},
];
testHelper({
parentPath: [],
fieldName: 'mail',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: false,
presentOnly: false
}, testCases, expect);
});
});
describe('three layers data', () => {
describe('expect [true]', () => {
const expect = { result: true, fail: [] };
const testCases = [
{order: {user: {email: 'us-user@yahoo.com'}}},
{order: {user: {email: 'tw-user@yahoo.com.tw'}}},
{order: {user: {email: 'aws123@amazon.com'}}},
{order: {user: {email: '123@123.com'}}},
{order: {user: {email: 'A900000000'}}},
{order: {user: {email: 928317939}}},
{order: {user: {email: true}}},
{order: {user: {email: {}}}},
{order: {user: {email: []}}},
{order: {user: {email: undefined}}},
{order: {user: {email: null}}},
];
const nullTestCases = [
{order: {user: {email: null}}},
];
testHelper({
parentPath: ['order', 'user'],
fieldName: 'email',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: false,
presentOnly: false
}, testCases, expect);
testHelper({
parentPath: ['order', 'user'],
fieldName: 'email',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: true,
presentOnly: false
}, nullTestCases, expect);
});
describe('expect [false]', () => {
const expect = { result: false, fail: [['order', 'user', 'email']] };
const testCases = [
{order: {user: {email: '123@gmail.com'}}},
{order: {user: {email: 'user@gmail.com'}}},
{order: {user: {email: 'employee@gmail.com'}}},
];
testHelper({
parentPath: ['order', 'user'],
fieldName: 'email',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: false,
presentOnly: false
}, testCases, expect);
});
});
describe('array data', () => {
describe('expect [true]', () => {
const expect = { result: true, fail: [] };
const testCases = [
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: '123@123.com'}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: 89}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: true}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: []}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: {}}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: undefined}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: null}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: new Date('2019-03-03')}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: '0928365549'}]},
];
const nullTestCases = [
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: null}]},
{user: [{email: null}, {email: null}, {email: null}]},
];
testHelper({
parentPath: ['user', '*'],
fieldName: 'email',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: false,
presentOnly: false
}, testCases, expect);
testHelper({
parentPath: ['user', '*'],
fieldName: 'email',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: true,
presentOnly: false
}, nullTestCases, expect);
});
describe('expect [false]', () => {
const expect = { result: false, fail: [['user', '2', 'email']] };
const testCases = [
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: 'user@gmail.com'}]},
{user: [{email: 'us-user@yahoo.com'}, {email: 'aws123@amazon.com'}, {email: 'employee@gmail.com'}]},
];
testHelper({
parentPath: ['user', '*'],
fieldName: 'email',
ruleWithOptions: 'not_regex:/^.*@gmail.com$/i',
isNullable: false,
presentOnly: false
}, testCases, expect);
});
});
});