validator-list
Version:
79 lines (67 loc) • 2.5 kB
JavaScript
const assert = require('assert');
const _ = require('lodash');
const _String = require('underscore.string');
const validate = require('../lib/validator').validate;
const asyncValidate = require('../lib/async-validator').validate;
describe('default', function () {
describe('should set default values', function () {
const timestamp = Math.floor(Date.now() /1000);
const _data = {
name: 'tom',
login: '',
role_id: null,
parents: [],
child: {}
};
const _result = {
name: 'tom',
login: 'pantry',
password: 123456,
role_id: 11,
parents: [5, 12],
time: timestamp,
date: timestamp,
child: {
id: 234
}
};
function getDate() {
return timestamp;
}
it('sync', function () {
const data = _.clone(_data);
const result = _.clone(_result);
validate([
[['login', 'name'], 'default', {value: 'pantry'}],
['password', 'default', {value: 123456}],
['role_id', 'default', {value: 11}],
['parents', 'default', {value: [5, 12]}],
['time', 'default', {value: Math.floor(Date.now() /1000)}],
['date', 'default', {value: getDate}],
['child', 'default', {value: {id: 234}}]
], data);
assert.deepEqual(data, result);
});
it('async', async function () {
const data = _.clone(_data);
const result = _.clone(_result);
result.created_time = timestamp;
function getDateAsync() {
return new Promise((resolve) => {
resolve(timestamp);
});
}
await asyncValidate([
[['login', 'name'], 'default', {value: 'pantry'}],
['password', 'default', {value: 123456}],
['role_id', 'default', {value: 11}],
['parents', 'default', {value: [5, 12]}],
['time', 'default', {value: Math.floor(Date.now() /1000)}],
['date', 'default', {value: getDate}],
['child', 'default', {value: {id: 234}}],
[['created_time'], 'default', {value: getDateAsync}]
], data);
assert.deepEqual(data, result);
});
});
});