apemanerror
Version:
Error parser for apeman.
75 lines (67 loc) • 1.72 kB
JavaScript
/**
* Test case for fromSequelize.
* Runs with mocha.
*/
const fromSequelize = require('../lib/from_sequelize.js')
const assert = require('assert')
describe('from-sequelize', () => {
before((done) => {
done()
})
after((done) => {
done()
})
it('Unique error', (done) => {
let errors = fromSequelize(
[
{
message: 'username must be unique',
type: 'unique violation',
path: 'username',
value: 'foo'
}
],
{
namespace: '/data/attributes'
}
)
let error01 = errors[ 0 ]
assert.ok(error01.id)
assert.ok(error01.code)
assert.equal(error01.title, 'RESOURCE_DATA_CONFLICT_ERROR')
assert.deepEqual(error01.source, { pointer: '/data/attributes/username' })
done()
})
it('Not null error.', (done) => {
let error = fromSequelize({
message: 'key cannot be null',
type: 'notNull Violation',
path: 'key',
value: null
}, {
namespace: '/data/attributes'
})
assert.ok(error.id)
assert.ok(error.code)
assert.equal(error.title, 'VALUE_MISSING_ERROR')
assert.deepEqual(error.source, { pointer: '/data/attributes/key' })
done()
})
it('String error', (done) => {
let error = fromSequelize({
message: 'hash cannot be an array or an object',
type: 'string violation',
path: 'hash',
value: { foo: 'bar' }
}, {
namespace: '/data/attributes'
})
assert.ok(error.id)
assert.ok(error.code)
assert.equal(error.title, 'VALUE_STRING_ERROR')
assert.deepEqual(error.source, { pointer: '/data/attributes/hash' })
done()
})
})
/* global describe, before, after, it */