Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | 255x 255x 255x 255x 255x 255x 10x 245x 289x 289x 289x 57x 57x 57x 57x 232x 188x 188x 188x | import ValidationError from '../ValidationError' import { once } from './async' export default function runTests(options, cb) { let { endEarly, tests, args, value, errors, sort, path } = options let callback = once(cb) let count = tests.length const nestedErrors = [] errors = errors ? errors : [] if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value) for (let i = 0; i < tests.length; i++) { const test = tests[i] test(args, function finishTestRun(err) { if (err) { // always return early for non validation errors Iif (!ValidationError.isError(err)) { return callback(err) } if (endEarly) { err.value = value return callback(err) } nestedErrors.push(err) } if (--count <= 0) { Iif (nestedErrors.length) { if (sort) nestedErrors.sort(sort) //show parent errors after the nested ones: name.first, name if (errors.length) nestedErrors.push(...errors) errors = nestedErrors } Iif (errors.length) { callback(new ValidationError(errors, value, path)) return } callback(null, value) } }) } } |