lara-validator
Version:
Validating data based on Laravel validation style
30 lines (27 loc) • 1.21 kB
JavaScript
import assert from 'assert';
import RuleMeta from '../../../src/rules/RuleMeta';
describe('getValuesByPaths', () => {
it('true', () => {
const path = ['a', '*', 'b', '*', 'c'];
const data = {
a: [
{b: [ {c: '0'}, {c: '1'}, {c: '2'} ]},
{b: [ {c: '3'}, {c: '4'}, {c: '5'} ]},
{b: [ {c: '6'}, {c: '7'}, {c: '8'} ]},
],
};
const expected = [
{ path: [ 'a', '0', 'b', '0', 'c' ], value: '0' },
{ path: [ 'a', '0', 'b', '1', 'c' ], value: '1' },
{ path: [ 'a', '0', 'b', '2', 'c' ], value: '2' },
{ path: [ 'a', '1', 'b', '0', 'c' ], value: '3' },
{ path: [ 'a', '1', 'b', '1', 'c' ], value: '4' },
{ path: [ 'a', '1', 'b', '2', 'c' ], value: '5' },
{ path: [ 'a', '2', 'b', '0', 'c' ], value: '6' },
{ path: [ 'a', '2', 'b', '1', 'c' ], value: '7' },
{ path: [ 'a', '2', 'b', '2', 'c' ], value: '8' }
];
const result = RuleMeta.getValuesByPaths(path, data);
assert.strictEqual(JSON.stringify(result), JSON.stringify(expected));
});
});