apemanerror
Version:
Error parser for apeman.
67 lines (61 loc) • 1.49 kB
JavaScript
/**
* Test case for fromTv4.
* Runs with mocha.
*/
const fromTv4 = require('../lib/from_tv4.js')
const tv4 = require('tv4')
const assert = require('assert')
describe('tv4-error', () => {
before((done) => {
done()
})
after((done) => {
done()
})
it('Tv4 error', (done) => {
let schema = {
'properties': {
'id': {
'description': 'The unique identifier for a product',
'type': 'integer'
},
'name': {
'description': 'Name of the product',
'type': 'string',
'minLength': 8
}
},
'required': [
'id',
'name'
]
}
let values = {
name: 'foo',
id: 'abc'
}
let result = tv4.validateMultiple(values, schema)
let errors = fromTv4(result.errors, {
namespace: '/data/attributes'
})
let error0 = errors[ 0 ]
let error1 = errors[ 1 ]
assert.ok(error0.id)
assert.equal(error0.source.pointer, '/data/attributes/name')
assert.deepEqual(error0.meta, {
name: 'VALUE_STRING_TOO_SHORT_ERROR',
trigger: 'JSONSchema',
context: { length: 3, minimum: 8 }
})
assert.ok(error1.id)
assert.equal(error1.source.pointer, '/data/attributes/id')
assert.deepEqual(error1.meta, {
name: 'VALUE_TYPE_INVALID_ERROR',
trigger: 'JSONSchema',
context: { type: 'string', expected: 'integer' }
})
done()
})
})
/* global describe, before, after, it */