@deskpro/react-forms
Version:
Forms library for React
92 lines (69 loc) • 3.09 kB
JavaScript
;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _Error = require('../Error');
var _Error2 = _interopRequireDefault(_Error);
var _ErrorList = require('../ErrorList');
var _ErrorList2 = _interopRequireDefault(_ErrorList);
var _shallow = require('react-test-renderer/shallow');
var _shallow2 = _interopRequireDefault(_shallow);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* @copyright 2016, Prometheus Research, LLC
*/
describe('<ErrorList />', function () {
var renderer = void 0;
beforeEach(function () {
renderer = new _shallow2.default();
});
it('renders into null', function () {
var formValue = {
errorList: []
};
renderer.render(_react2.default.createElement(_ErrorList2.default, { formValue: formValue }));
assert(renderer.getRenderOutput() === null);
});
it('renders a list of errors', function () {
var formValue = {
errorList: [{ field: 'data.a', message: 'error' }]
};
renderer.render(_react2.default.createElement(_ErrorList2.default, { formValue: formValue }));
var tree = renderer.getRenderOutput();
assert(tree.type === 'div');
assert(tree.props.children.length === 1);
assert(tree.props.children[0].type === _Error2.default);
assert(tree.props.children[0].props.error.message === 'error');
});
it('renders a complete list of errors', function () {
var formValue = {
completeErrorList: [{ field: 'data.a', message: 'error' }]
};
renderer.render(_react2.default.createElement(_ErrorList2.default, { complete: true, formValue: formValue }));
var tree = renderer.getRenderOutput();
assert(tree.type === 'div');
assert(tree.props.children.length === 1);
assert(tree.props.children[0].type === _Error2.default);
assert(tree.props.children[0].props.error.message === 'error');
});
it('renders a list of errors with labels fetched from schema', function () {
var formValue = {
completeErrorList: [{ field: 'data.a', message: 'error', schema: { label: 'A' } }]
};
renderer.render(_react2.default.createElement(_ErrorList2.default, { complete: true, formValue: formValue }));
var tree = renderer.getRenderOutput();
assert(tree.type === 'div');
assert(tree.props.children.length === 1);
assert(tree.props.children[0].type === _Error2.default);
});
it('can filter errors by schema types', function () {
var formValue = {
completeErrorList: [{ field: 'data.a', message: 'error', schema: { type: 'object' } }, { field: 'data.b', message: 'error', schema: { type: 'string' } }]
};
renderer.render(_react2.default.createElement(_ErrorList2.default, { complete: true, schemaType: { object: true }, formValue: formValue }));
var tree = renderer.getRenderOutput();
assert(tree.type === 'div');
assert(tree.props.children.length === 1);
assert(tree.props.children[0].type === _Error2.default);
assert(tree.props.children[0].props.error.message === 'error');
});
});